2011-07-17 74 views
0

如果我在Eclipse中创建动态Web应用程序并且上下文根与WAR名称不匹配,则在启动关联的Tomcat 7服务器时出现错误...来自Eclipse的Tomcat 7启动错误 - 无法处理JNDI URL

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"/> 

的应用程序是通过访问0,正如我所料,但servlet注释不起作用,错误本身导致服务器启动花费比它应该更长的时间。如果上下文根与WAR名称相匹配,它可以正常工作,但这对我前进来说会是一个问题。

任何想法如何解决这个问题?

更新:我发现这只会发生,如果修改后的上下文根包含/。如果我将上下文根改为“tests-example1”,它就可以工作。

回答

0

我与Tomcat 7.0.16有同样的问题,但它适用于Tomcat 7.0.22。

0

我们在Tomcat 6.0.36中遇到了这样的问题。我们在编辑Spring配置时找到了解决方案。我们改变

<xconf:properties href="${...}/..." prefix="..." /> 

<xconf:properties file="${...}/...." prefix="..." /> 

,并设置固定的人在需要的地方都相对路径。

也许,某些路径在您的应用程序中发生了变化,但您忘记了更新应用程序配置。 所以,我认为,你应该首先检查你的应用程序配置。在Spring配置中搜索'example1'等。