我已经将使用Spring和Hibernate的Apache Wicket Web应用程序部署到了我的Tomcat 5.5实例。当我导航到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的摘录:
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </ listener-class> </ listener>
任何帮助是极大的赞赏。
/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/lib
以及JRE/lib/ext
如果其中已放置了库中的任何库)。
特定于appserver的库包含在webapp的库中的常见原因是,javax.servlet
入门者认为这是修复无法解析的类等其他编译错误的正确方法。将它们放在webapp的库中是错误的解决方案。您应该在编译期间(例如,javac -cp /path/to/server/lib/servlet.jar
依此类推)在类路径中引用它们,或者如果您使用的是IDE,则应将服务器集成到IDE中并将Web项目与服务器关联。然后,IDE将自动在webapp项目的类路径(buildpath)中获取服务器特定的库。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句