【发布时间】:2011-07-17 04:45:40
【问题描述】:
如果我在 Eclipse 中创建动态 Web 应用程序并且上下文根与 WAR 名称不匹配,则在启动关联的 Tomcat 7 服务器时会出现错误...
SEVERE: Unable to process JNDI URL [jndi:/localhost/tests/example1/WEB-INF/classes] for annotations
java.io.FileNotFoundException: jndi:/localhost/tests/example1/WEB-INF/classes
at org.apache.naming.resources.DirContextURLConnection.list(DirContextURLConnection.java:452)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1843)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1770)
等等,
server.xml 文件的相关部分(我认为)是,
<Context docBase="MyExample" path="/tests/example1" reloadable="true" source="org.eclipse.jst.jee.server:MyExample"/>
正如我所料,该应用程序可以通过/tests/example1 访问,但是servlet 注释不起作用,并且错误本身会导致服务器启动时间比应有的时间长。如果上下文根与 WAR 名称匹配,它可以正常工作,但这对我来说将是一个问题。
有什么想法可以解决这个问题吗?
更新:我发现只有在修改后的上下文根包含/ 时才会发生这种情况。如果我将上下文根更改为“tests-example1”,它就可以工作。
【问题讨论】:
标签: java eclipse servlets annotations tomcat7