一尘不染

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

tomcat

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

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

Apr 15, 2010 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, 2010 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, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Error listenerStart  
Apr 15, 2010 1:51:24 AM org.apache.catalina.core.StandardContext start  
SEVERE: Context [/spaghetti] startup failed due to previous errors

来自web.xml的摘录:

    <听者>
        <侦听器类>
            org.springframework.web.context.ContextLoaderListener
        </ listener-class>
    </ listener>

任何帮助是极大的赞赏。


阅读 228

收藏
2020-06-16

共1个答案

一尘不染

/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/lib(以及其中的任何库JRE/libJRE/lib/ext如果已将它们放在其中)。

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

2020-06-16