将嵌入式Tomcat从v6更改为v7会导致InitialContext查找失败
我正在使用JUnit测试用例来使用嵌入式Tomcat测试我的web服务。在Tomcat6下,一切都很好,但当我把我的项目切换到Tomcat7时,我就要崩溃了 设置嵌入式Tomcat服务器的测试代码如下:将嵌入式Tomcat从v6更改为v7会导致InitialContext查找失败,tomcat,jndi,Tomcat,Jndi,我正在使用JUnit测试用例来使用嵌入式Tomcat测试我的web服务。在Tomcat6下,一切都很好,但当我把我的项目切换到Tomcat7时,我就要崩溃了 设置嵌入式Tomcat服务器的测试代码如下: Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); int thumbnailSize = (Integer) en
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
int thumbnailSize = (Integer) envCtx.lookup("thumbnail-pixel-size");
雄猫6
由于嵌入式API在版本6和版本7之间发生了更改,我将自己的代码更改为:
雄猫7
当我执行JUnit测试时,实际的web服务启动良好(我可以使用我的web浏览器查看正在提供的WSDL)
但是,在web服务的构造函数中,我根据web.xml
文件(位于System.getProperty(“user.dir”)+“/build/web/web-INF/web.xml”
中)中的值初始化了一些变量,如下所示:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
int thumbnailSize = (Integer) envCtx.lookup("thumbnail-pixel-size");
其中我的web.xml
文件包含以下条目:
<env-entry>
<env-entry-name>thumbnail-pixel-size</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>64</env-entry-value>
</env-entry>
缩略图像素大小
java.lang.Integer
64
当我尝试创建
envCtx
对象时,我得到一条消息,消息是Name java:comp在此上下文中未绑定。我很困惑,因为它与Tomcat6配合得很好。我是否错过了之前在Tomcat 6设置中定义的Tomcat 7设置中的某些内容?通过Tomcat用户邮件列表标记Thomas
在服务器启动之前。这对我很有效(我想他们在6到7之间改变了默认行为)。马克·托马斯通过tomcat用户邮件列表
在服务器启动之前。这对我很有效(我想他们在6到7之间改变了默认行为)
<env-entry>
<env-entry-name>thumbnail-pixel-size</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>64</env-entry-value>
</env-entry>
tomcat.enableNaming();