日期:2014-05-17  浏览次数:20895 次

SSH 使用slf4j+logback,却需要commons-logging.jar
新配置的SSH框架,启动时报错:

严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184) 
  .......(略)
   

加入commons-logging.jar就能启动,而且日志也正常运行。但是我此处已经用了slf4j,为什么还需要commons-logging呢?是spring启动时需要吗?


------解决方案--------------------
不太懂,帮楼主顶上。
------解决方案--------------------
包依赖说明:

Spring使用了来自Jakarta Commons项目的大量组件。如果你想在应用中使用源码级元数据(metadata),就需要commons-attributes-api.jar,此外还需要commons-attributes-compiler.jar,以便将attributes编译到应用里。Struts要用到BeanUtils、Collections、Digester、Discovery,和Validator JAR文件,其中的Collections,Hibernate也会用到。使用DBCP连接池时,Spring JDBC支持要用到DBCP,Pooling则对有些示例应用不可或缺。如果想使用相应的Spring包装类来处理web应用的文件上传,则需要FileUpload。最后,Spring处处用到了Logging,因此需在所有基于Spring的应用里包含这个JAR文件。
------解决方案--------------------
监听器没有配置吧?