重新部署 servlet 时出现严重错误 - 愚蠢的错误



我试图重新部署我最近取消部署的 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错误,所以我在这里发布一个问答,希望这可以节省一些时间。

手动部署时请小心,人。

最新更新