[英]How to resolve Error listenerStart when deploying web-app in Tomcat 5.5?
我已经部署了一个Apache Wicket Web应用程序,它将Spring和Hibernate用于我的Tomcat 5.5实例。 当我导航到Tomcat Manager界面时,我发现我部署的Web应用程序没有运行。 当我按下“开始”时,我收到以下错误消息; “失败 - 在上下文路径/意大利面条中的应用程序无法启动”。
我的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>
任何帮助是极大的赞赏。
我发现遵循这些说明有助于找到问题所在。 对我来说,那是杀手,不知道什么被打破了。
引用链接
在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
/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
。 将它们留在appserver自己的库中。 它只会导致类路径中的冲突。 删除/WEB-INF/lib
的所有特定于appserver的库(如果已放置其中任何一个,还可以在JRE/lib
和JRE/lib/ext
)。
特定于appserver的库包含在webapp库中的一个常见原因是,启动者认为这是修复javax.servlet
类不可解析的编译错误的正确方法。 将它们放在webapp的库中是错误的解决方案。 您应该在编译期间在类路径中引用它们,即javac -cp /path/to/server/lib/servlet.jar
等等,或者如果您使用的是IDE,则应该将服务器集成到IDE中并将其关联与服务器的Web项目。 然后,IDE将自动在webapp项目的类路径( buildpath )中获取特定于服务器的库。
当我编译app的JDK与tomcat JVM不同时,我遇到了这个错误。 我验证了Tomcat管理器运行的是jvm 1.6.0,但该应用程序是在java 1.7.0下编译的。
升级Java并在我们的启动脚本(/etc/init.d/tomcat)中更改JAVA_HOME后,错误就消失了。
Tom Saleeba提供的回答非常有帮助。 今天我也遇到了同样的错误
2015年4月28日下午7:53:27 org.apache.catalina.core.StandardContext startInternal SEVERE:错误listenerStart
我按照建议并添加了logging.properties文件。 以下是我失败的原因:
java.lang.IllegalStateException:未扩展WAR文件时,无法设置Web应用程序根系统属性
问题的根本原因是我添加到web.xml中的监听器(Log4jConfigListener)。 并且根据链接SEVERE:Exception org.springframework.web.util.Log4jConfigListener ,无法在未展开的WAR中添加此侦听器。
有人知道这是在OpenShift JBoss设备上发生的,这可能会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.