jboss部署項目中遇到如下錯誤資訊:
- 09:12:54,062 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.appender.FileAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
- 09:12:54,062 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
- 09:12:54,062 ERROR [STDERR] log4j:ERROR [WebappClassLoader
- delegate: false
- repositories:
- /WEB-INF/classes/
- ----------> Parent Classloader:
- org.jboss.mx.loading.UnifiedClassLoader3@17c50b9{ url=file:/D:/jboss-4.2.3.GA/server/default/deploy/jboss-web.deployer/ ,addedOrder=6}
- ] whereas object of type
- 09:12:54,062 ERROR [STDERR] log4j:ERROR "org.jboss.logging.appender.FileAppender" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@1292d26].
- 09:12:54,062 ERROR [STDERR] log4j:ERROR Could not instantiate appender named "FILE".
從錯誤資訊中可知,原因是jboss的日志jar包和項目中添加的日志jar包沖突,解決方法很簡單,找到項目中的log4j.jar和commons-logging.jar删除即可。
新問題出現:
以上處理方式發現另外一個問題,項目在console輸出的一些資訊丢失。需要找到更好的方式解決。
以上問題解決方法:
無需删除項目中的log4j.jar和commons-logging.jar的方法,将jboss/lib中的jboss-common.jar包複制到項目的lib中即可。這樣就可以讓項目中的日志和jboss中的日志一起工作。