sta*_*wer 3 tomcat jndi context.xml
Tomcat6一直忽略我的META-INF/context.xml.当我尝试查找"tt"时,我一直得到"名字tt不受此上下文约束"(请参阅"详细信息").
当我将META-INF/context.xml的内容放在server.xml中的'context'标记内时,它可以工作.我还检查过$ Tomcat-base/Catalina/localhost是空的,所以我的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>
Run Code Online (Sandbox Code Playgroud)
server.xml中此webroot的Context标记:
<Context path="/test" docBase="E:\javaProjects\TestProject\Webroot" reloadable="true"></Context>
Run Code Online (Sandbox Code Playgroud)
我查找"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);
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
javax.naming.NameNotFoundException: Name tt is not bound in this context
Run Code Online (Sandbox Code Playgroud)
如果我<Context>从server.xml中删除了代码,并且仅在META-INF/context.xml
<Context>在两个地方都定义时,它不起作用.
其次,将您的类型更改为String,而不是Integer
<Environment name="tt" value="this is a string" type="java.lang.String"></Environment>
</Context>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11533 次 |
| 最近记录: |