首页 文章

Tomcat6忽略META-INF / context.xml

提问于
浏览
3

Tomcat6一直忽略我的META-INF / context.xml . 当我试着查找“tt”时,我一直得到“名字tt不受此上下文约束”(请参阅“详细信息”) .

当我将META-INF / context.xml的内容放在server.xml中的'context'标记内时,它可以工作 . 我还检查了 $Tomcat-base/Catalina/localhost is empty ,所以我的META-INF / context.xml没有被覆盖 .


细节:

Tomcat版本:6.0.10

这是我的Webroot结构:

Webroot公司
| -META-INF
| | -context.xml
|
| -WEB-INF
| -web.xml

context.xml的内容:

<Context>
    <Environment name="tt" value="this is a string" type="java.lang.String"></Environment>
</Context>

server.xml中此webroot的Context标记:

<Context path="/test" docBase="E:\javaProjects\TestProject\Webroot" reloadable="true"></Context>

我查找“tt”的方式:

...
Context ic = new InitialContext();
Context ec = (Context) ic.lookup("java:comp/env");
String str = (String) ec.lookup("tt");
System.out.println("str is "+str);

我得到的错误:

javax.naming.NameNotFoundException: Name tt is not bound in this context

2 回答

  • 5

    我从server.xml获得了你的代码 IF I delete <Context> 并仅在 META-INF/context.xml 中定义它

    在两个地方都定义了 <Context> 时,它不起作用 .

    其次, change your type to String ,而不是整数

    <Environment name="tt" value="this is a string" type="java.lang.String"></Environment>
    </Context>
    
  • 0

    你不能在两个不同文件中定义的一个主机中有两个上下文,这是问题的根源 . 欲了解更多信息,请阅读this文章 .

相关问题