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