如何解决JBoss和log4j冲突

开发 后端
本文说明解决jboss和log4j冲突的解决方案,此方案通过配置Java2ClassLoadingCompliance及UseJBossWebLoader为false,以及在org.jboss.logging.Log4jService的设置中加个属性来完成。

解决jboss和log4j冲突的最理想配置如下:

1.配置$JBOSS-HOME/server/default/deploy/jbossweb-tomcat55.sar/META-INF/jboss-service.xml文件里的Java2ClassLoadingCompliance及UseJBossWebLoader为false,如果你的应用下存在WEB-INF/jboss-web.xml,则里面的java2ClassLoadingCompliance及java2ParentDelegaton属性也都设置成false。

2.配置$JBOSS-HOME/server/default/jboss-service.xml中的org.jboss.logging.Log4jService的设置中加个属性:

  1. attribute name="CatchSystemOut">false﹤/attribute> 

即可。

如下:

  1. mbean code="org.jboss.logging.Log4jService" name="jboss.system:type=Log4jService,service=Logging"> 
  2. attribute name="ConfigurationURL">resource:log4j.xml﹤/attribute> 
  3. attribute name="CatchSystemOut">false﹤/attribute> 
  4. attribute name="Log4jQuietMode">true﹤/attribute> 
  5. ﹤/mbean> 

3.建立一个用于初始化的 InitServlet ,在init方法指定log4j读取我们应用下的的log4j.properties文件,代码如:

  1. public void init(ServletConfig config) throws ServletException {   
  2.     PropertyConfigurator.configure(config.getServletContext().getRealPath("/")  
  3. "WEB-INF/classes/log4j.properties");  
  4. }  

然后在 web.xml 配置这个 Servlet 的初始化参数(声明 log4j.properties 的位置)和启动优先级:

  1. servlet>   
  2.   servlet-name>InitServlet﹤/servlet-name>   
  3.   servlet-class>InitServlet﹤/servlet-class>   
  4.   load-on-startup>1﹤/load-on-startup>   
  5. ﹤/servlet>  

4.把jboss的jboss-common.jar($JBOSS-HOME/lib目录下)复制到你的应用/WEB-INF/lib目录下。

通过这样的配置后,webapp的log4j和jboss的log4j将相互隔离互不影响,在jboss.4.0.5下测试通过,并做的总结。jBoss和log4j的冲突得以解决。

【编辑推荐】

  1. JBoss集群配置前言与集群知识
  2. JBoss下载与JBoss安装
  3. 部署基于JBoss的J2EE应用程序
  4. JBoss Web和Tomcat的区别
  5. JBoss应用服务器5.0正式发布
责任编辑:yangsai 来源: CSDN博客
相关推荐

2022-02-15 17:51:38

Log4j漏洞网络安全

2022-03-25 13:42:15

Log4j漏洞网络安全

2022-02-13 16:18:57

JetBrainsIntelliJLog4j

2013-05-21 10:58:43

Log4jActiveMQSpring

2021-12-14 23:44:26

漏洞Log4j项目

2021-12-16 12:27:15

Log4j漏洞网络安全

2016-10-21 13:10:18

javalog4jslf4j

2020-01-07 10:06:26

Slf4jLog4JLogback

2022-01-21 14:22:58

漏洞Log4Shell网络犯罪

2022-03-30 11:29:53

漏洞补丁Spring

2021-12-22 16:53:31

Log4jLog4j库零日漏洞

2023-10-11 12:35:29

Maven

2009-07-08 14:33:46

Java日志框架Log4J

2023-05-30 18:13:59

Git代码

2022-01-10 11:54:54

FTCLog4j联邦贸易委员会

2021-12-23 09:47:36

Log4jRCE漏洞DoS漏洞

2022-01-24 10:02:53

漏洞微软网络攻击

2021-12-13 01:49:34

漏洞Log4j代码

2021-06-03 10:58:16

logbacklog4jJava

2021-12-23 11:03:25

Log4j 漏洞漏洞
点赞
收藏

51CTO技术栈公众号