我之前在本地 Tomcat (6.0.35) 实例上部署了一个 WAR,名为appdata.war
,因此 webapps 目录如下所示:
webapps/
docs/
examples/
host-manager/
manager/
appdata/ (exploded WAR)
ROOT/
appdata.war
我删除了appdata/
and appdata.war
(这样 Tomcat 就不会尝试重新部署它),然后appmon-qa.war
在这个目录中添加了一个新的 war ( )。然后我运行 Tomcat 启动脚本并看到引用“旧” appdata
WAR 的部署错误。我四处寻找,看到一个具有该名称的文件夹,${TOMCAT.HOME}/work/Catalina/localhost/appdata
然后我将其删除(再次,只是为了防止 Tomcat 重新部署它)。然后我重新运行了启动脚本,并在 catalina 日志中看到了这一点:
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
,那我从哪里开始调试呢?通常这些“由于先前的错误而失败”输出还包括错误的原因或来源;这个输出非常不具描述性和模糊性。提前致谢!