我构建了一个REST Web服务(使用JAX-RS,Spring,Spring JMS和ActiveMQ)。我很惊讶当我将它部署到Tomcat 5.5.23时,我得到一个例外,需要JSF jar?!
Error configuring application listener of class org.apache.myfaces.webapp.StartupServletContextListener
java.lang.ClassNotFoundException: org.apache.myfaces.webapp.StartupServletContextListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3712)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
Web服务工作正常,直到我在不同的类中添加log4j功能,这是我的log4j.properties文件(我把它放在WEB-INF / classes中):
log4j.rootCategory=INFO, S
log4j.logger.com.dappit.Dapper.parser=ERROR
log4j.logger.org.w3c.tidy=FATAL
#------------------------------------------------------------------------------
#
# The following properties configure the console (stdout) appender.
# See http://logging.apache.org/log4j/docs/api/index.html for details.
#
#------------------------------------------------------------------------------
log4j.appender.S = org.apache.log4j.ConsoleAppender
log4j.appender.S.layout = org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
知道如何解决这个问题吗?
答案 0 :(得分:2)
如果您在web.xml中引用org.apache.myfaces.webapp.StartupServletContextListener
,我希望看到这一点,例如:
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
你能证实没有这样的元素吗?
答案 1 :(得分:1)
听起来像是一个类加载器层次结构问题。您应该将log4j包含在WAR文件中,而不是将其放在Tomcat的共享库中。
另外,我在Tomcat 6.0中修复了Tomcat 5.5的一些问题。您可能需要考虑升级。
答案 2 :(得分:1)
按照提供的方式在maven中创建以下依赖项(如果存在): javax javaee-api 6.0范围:提供
javax.servlet javax.servlet-api 3.0.1范围:提供