一尘不染

在Tomcat 5.5中部署Web应用时如何解决Error listenerStart?

spring

我已经将使用Spring和Hibernate的Apache Wicket Web应用程序部署到了我的Tomcat 5.5实例。当我导航到Tomcat Manager界面时,我看到我部署的Web应用程序未运行。当我按“开始”时,出现以下错误信息;“失败-无法启动上下文路径/ spaghetti中的应用程序”。

我的catalina.log包含以下内容:

Apr 15, 2019 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile  
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar)   - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/jsp/JspPage.class  
Apr 15, 2019 1:51:22 AM org.apache.catalina.loader.WebappClassLoader validateJarFile  
INFO: validateJarFile(/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class  
Apr 15, 2019 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Error listenerStart  
Apr 15, 2019 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Context [/spaghetti] startup failed due to previous errors

Excerpt from web.xml:

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

任何帮助是极大的赞赏。


阅读 259

收藏
2020-04-19

共2个答案

一尘不染

/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/jsp-api-6.0.16.jar
/var/lib/tomcat5.5/webapps/spaghetti/WEB-INF/lib/servlet-api-6.0.16.jar

你应该不会有在任何服务器专用库/WEB-INF/lib。将它们保留在应用服务器自己的库中。这只会导致类路径冲突。摆脱中的所有所有特定于应用程序服务器的库/WEB-INF/libJRE/lib以及JRE/lib/ext如果其中已放置了库中的任何库)。

特定于appserver的库包含在webapp的库中的一个常见原因是,javax.servlet入门者认为这是修复无法解析的类等其他编译错误的正确方法。将它们放在webapp的库中是错误的解决方案。你应在编译期间(例如,javac -cp /path/to/server/lib/servlet.jar依此类推)在类路径中引用它们,或者,如果你使用的是IDE,则应将服务器集成到IDE中并将Web项目与服务器关联。然后,IDE将自动在webapp项目的类路径(buildpath)中获取服务器特定的库。

2020-04-19
一尘不染

在Tomcat 6或更高版本中,默认记录器是“ java.util.logging”记录器,而不是Log4J。因此,如果你尝试添加“ log4j.properties”文件–这将无法工作。Java utils记录器会按以下说明查找名为“ logging.properties”的文件:http : //tomcat.apache.org/tomcat-6.0-doc/logging.html

因此,要获取调试详细信息,请在WAR的“ / WEB-INF / classes”文件夹下创建一个“ logging.properties”文件,一切就绪。

现在,当你重新启动Tomcat时,将看到全部调试信息!

logging.properties文件:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler
2020-04-19