我们正在将应用程序从 Maven 编译的代码部署到 JBoss。
Maven能够编译代码并被人们共享。此外,它使用 log4j
版本 1.2.16
。在 JBoss 中,应用程序构建成功,但网页无法打开。
JBoss 在 server\default\lib
和 client
文件夹中有 log4j.jar
。另外,log4jboot.jar
code> 位于 client
文件夹中。
由于它无法打开网页,因此我将 JBoss 中的所有日志 jar 更改为版本 1.2.16
。
现在应用程序已启动并且网页正在运行,但我无法在服务器命令提示符中看到日志详细信息。
目前这是错误:
failed to initialize plugin org.jboss.logging.log4jloggerplugin
有人可以对此提出想法吗?
编辑:
使用log4jboot.jar,错误是500错误:
type Exception report
// message:
The server encountered an internal error () that prevented it from fulfilling this request.
// exception:
javax.servlet.ServletException: Filter execution threw an exception
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
// root cause:
java.lang.NoSuchMethodError: org/apache/log4j/MDC.clear()V
最佳答案
这将有助于了解您正在使用哪个版本的 JBoss。
JBoss 5.1.0.GA 附带 log4j 版本 1.2.14。 MDC.clear() 方法是在 1.2.16 中引入的,它可以解释如果您使用旧版本的 JBoss 时会遇到的 NoSuchMethodError。
一些可以尝试的解决方案:
- 删除所有对 MDC.clear() 方法的使用。
- 升级您的 JBoss 服务器。
- 将提供的 log4j jar 替换为您自己的 jar。
关于java - 由于版本差异,jboss 中出现 log4j 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15151122/