tomcat maven plugin 取不到 web.xml 中的env-entry的值
2017-02-22 14:18
253 查看
tomcat maven plugin
使用 maven plugin 进行测试的时候,会有一个比较特殊的问题,就是读取 web.xml中的 env-entry 会读取不到。
测试的启动命令是:
web.xml:
Servlet Code:
但是,如果将 项目的war包放到 tomcat服务器中,却可以取得到 env-entry 的值.
用 tomcat maven plugin 进行测试的时候,为了查找原因,debug找到以下线索:
tomcat 加载 web.xml 中的 env-entry 元素,代码是在 WebXml::configureContext():
看来这是放到了某个目录结构下去了.
@Resource寻找的时候:
个人推测:
tomcat maven plugin的 jndi的目录结构 跟 tomcat server 的不一样?
<groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version>
使用 maven plugin 进行测试的时候,会有一个比较特殊的问题,就是读取 web.xml中的 env-entry 会读取不到。
测试的启动命令是:
tomcat7:run
web.xml:
<env-entry> <env-entry-name>testEnv</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>hello</env-entry-value> </env-entry>
Servlet Code:
private @Resource(name = "testEnv") String testEnv;
但是,如果将 项目的war包放到 tomcat服务器中,却可以取得到 env-entry 的值.
用 tomcat maven plugin 进行测试的时候,为了查找原因,debug找到以下线索:
tomcat 加载 web.xml 中的 env-entry 元素,代码是在 WebXml::configureContext():
for (ContextEnvironment environment : envEntries.values()) { context.getNamingResources().addEnvironment(environment); }
看来这是放到了某个目录结构下去了.
@Resource寻找的时候:
1. tomcat maven plugin 没有找到; 2. 而在 tomcat server上,却找到了
个人推测:
tomcat maven plugin的 jndi的目录结构 跟 tomcat server 的不一样?
相关文章推荐
- 获取tomcat中web.xml中定义的环境变量(env-entry)
- web.xml之env-entry
- 解决web.xml和jar包发布不到tomcat问题
- 从jbuilder启动web应用,tomcat下的server.xml总被改?
- (转载)[TOMCAT]用web.xml控制Web应用的行为
- Tomcat中用web.xml控制Web应用详解(1)
- Tomcat中用web.xml控制Web应用详解(1)
- 怎样在tomcat5.0中怎样配置web.xml运行servlet
- TOMCAT的web.xml配置的详细说明
- 怎样在tomcat5.0中怎样配置web.xml运行servlet
- 如何让Tomcat自动Load被修改过的类 servlet如何读取web.xml中的初始参数
- (转载)[TOMCAT]用web.xml控制Web应用的行为
- In the web.xml of your war, have the following entry:
- Tomcat中web.xml语句顺序问题