我之前在我调用的本地Tomcat(6.0.35)实例上部署了一个WAR appdata.war,因此webapps目录看起来像:
webapps/
docs/
examples/
host-manager/
manager/
appdata/ (exploded WAR)
ROOT/
appdata.war
Run Code Online (Sandbox Code Playgroud)
我删除appdata/和appdata.war(这样的Tomcat不会尝试重新部署),然后添加一个新的战争(appmon-qa.war)到该目录.然后,我运行了Tomcat启动脚本,看到引用"旧" appdataWAR的部署错误.我捅了一下,看到一个名字的文件夹位于,${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
Run Code Online (Sandbox Code Playgroud)
我认为我的哦,如此完美编写的appmon-qa.war应用程序由于对这个旧appdata.war应用程序的一些鬼引用而未能部署.如果是这样,我是否(正确)取消部署或完全从Tomcat中删除它,以免它对我的新应用程序造成问题?
否则,如果此日志输出表明自身有问题appmon-qa.war,那么我在哪里开始调试?通常这些"因先前错误而失败"的输出也包括错误的原因或来源; 这个输出非常简洁,含糊不清.提前致谢!