我试图重新部署我最近取消部署的 servlet,但一直得到org.apache.catalina.LifecycleException
。Tomcat无法正确加载上下文。
这就是触发搜索的原因:
FAIL - Unable to delete [/var/lib/tomcat7/conf/Catalina/localhost/app.xml].
The continued presence of this file may cause problems.
以下是日志catalina.out
中的错误,重新排列以适应列:
WARNING: Calling stop() on failed component [{0}] to trigger clean-up
did not complete.
org.apache.catalina.LifecycleException:
An invalid Lifecycle transition was attempted ([after_stop]) for
component [org.apache.catalina.startup.FailedContext@13150fc] in state
[FAILED]
WARNING: Error while removing context [/app]
java.lang.ClassCastException:
org.apache.catalina.startup.FailedContext cannot be cast to
org.apache.catalina.core.StandardContext
向上滚动,我注意到SEVERE
错误的完整列表,从:
SEVERE: Parse error in context.xml for /app
org.xml.sax.SAXParseException;
systemId: file:/etc/tomcat7/Catalina/localhost/app.xml/;
lineNumber: 1;
columnNumber: 1;
Content is not allowed in prolog.
这与无法在Tomcat 7中完全取消部署Web应用程序或安装JSTL导致org.xml.sax.SAXParseException无关:prolog中不允许内容,尽管我浪费了相当多的时间浏览这些内容。一切似乎都如愿以偿,所以我被难住了。最终,我自己解决了。我的答案如下。
原来我已经部署了
/path/to/servlet/web/
作为 XML 配置文件,而不是
/path/to/servlet/website.xml
正如雄猫所期待的那样。
快速检查我其他浏览器的保存表单内容时发现了这个kickself错误,所以我在这里发布一个问答,希望这可以节省一些时间。
手动部署时请小心,人。