2011-07-17 102 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'等。