我有一個以前部署在本地Tomcat(6.0.35)實例上的WAR,名爲appdata.war
,所以webapps目錄看起來像像:java.lang.IllegalArgumentException:文檔庫tomcat webapps appdata不存在或不是一個可讀的目錄
webapps/
docs/
examples/
host-manager/
manager/
appdata/ (exploded WAR)
ROOT/
appdata.war
我刪除appdata/
和appdata.war
(這樣的Tomcat不會嘗試重新部署),然後添加一個新的戰爭(appmon-qa.war
)到該目錄。然後我運行了Tomcat啓動腳本,發現引用了「舊」appdata
WAR的部署錯誤。我戳了一下,看到一個名稱爲${TOMCAT.HOME}/work/Catalina/localhost/appdata
的文件夾,我刪除了它(再一次,只是爲了防止Tomcat重新部署它)。然後我重新運行啓動腳本和我的卡塔利娜日誌中看到的是:
SEVERE: Error starting static Resources
java.lang.IllegalArgumentException: Document base C:\Program Files\Apache\apache-tomcat-6.0.35\webapps\appdata does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4320)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4489)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
...rest of stacktrace omitted for brevity
Jun 7, 2012 11:35:27 AM org.apache.catalina.core.StandardContext start
SEVERE: Error in resourceStart()
Jun 7, 2012 11:35:27 AM org.apache.catalina.core.StandardContext start
SEVERE: Error getConfigured
Jun 7, 2012 11:35:27 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/appdata] startup failed due to previous errors
Jun 7, 2012 11:35:27 AM org.apache.catalina.core.StandardContext stop
INFO: Container org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/appdata] has not been started
Jun 7, 2012 11:35:27 AM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive appmon-qa.war
Jun 7, 2012 11:35:28 AM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Jun 7, 2012 11:35:28 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/appmon-qa] startup failed due to previous errors
我假設我的哦,所以,完全寫appmon-qa.war
應用程序是不能因爲一些鬼參考這個部署舊appdata.war
應用程序。如果是這樣,我是否(正確)從Tomcat中徹底取消部署或刪除它,以便它不會導致我的新應用程序出現問題?
否則,如果此日誌輸出指示appmon-qa.war
本身出現問題,那麼我在哪裏開始調試?通常這些「由於以前的錯誤而失敗」的輸出還包括錯誤的原因或來源;這個輸出非常不具說明性和含糊。提前致謝!
感謝@adarshr,但'localhost'目錄內沒有XML文件。我看到'localhost/appdata /',但它是一個空目錄。當我刪除它並重新運行啓動腳本時,會發生同樣的情況,但是'localhost/appdata /'目錄被重新創建! (顯然有一些內部引用'appdata'!)Tomcat使用嵌入式數據庫還是什麼?!? – IAmYourFaja
您可能會在'webapps'或類似的其他熱部署目錄中顯示'appdata.war'文件。如果你保留'.war'文件,它會被自動分解和部署。 – adarshr
正如我原來的帖子所解釋的,我從webapps中刪除了WAR和爆炸目錄 - 是否有隱藏/深層嵌套的目錄,其中Tomcat 6.0.35將WAR複製或引用它們? – IAmYourFaja