Tomcat错误-失败-上下文路径/petricial上的应用程序无法启动



我浏览了类似的问题,但一无所获。我安装了Tomcat7,然后用maven编译了PetClinic应用程序。我成功地将它部署到Tomcat。从那以后,我已经取消部署并重新编译了war文件并部署了它,现在它抛出了错误FAIL-上下文路径/petclinic上的应用程序无法启动。以下是日志文件的前几行。请告知。谢谢

Sep 23, 2012 2:21:10 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Sep 23, 2012 2:21:10 PM org.apache.catalina.core.StandardContext listenerStop
SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/apache/log4j/LogManager$PrivateManager
at org.apache.log4j.LogManager.getLogger(LogManager.java:34)
at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:209)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:272)
at org.springframework.web.context.ContextCleanupListener.<clinit>(ContextCleanupListener.java:43)
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:80)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4831)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5478)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1255)
at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:714)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:219)

问题就在这里:

SEVERE: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/apache/log4j/LogManager$PrivateManager
at org.apache.log4j.LogManager.getLogger(LogManager.java:34)
at org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:209)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:131)

Q: 你用的是log4j(这是我推荐的)还是slf4j?

建议:

1) 确保相关的.jar文件(heck-为什么不同时包含log4j和slf4j.jar)在WAR的WEB-INF/lib文件夹中。

2) 确保Tomcat环境中只有一个版本的log4j(可能存在两个相互冲突的.jar版本)。

最新更新