jboss log4j和工程log4j冲突

近期项目过程中,出现了一个问题,日志不能记录到jboss的server.log中。

这个问题导致程序的调试很困难。开始看jboss启动的debug信息,发现一个error信息。

ERROR "org.jboss.logging.util.OnlyOnceErrorHan
dler" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@f62373]

查找了jboss的论坛,原来是在自己工程的WEB-INF/lib目录下多了log4j.jar,删除此jar。然后从别的位置引入工程编译通过后,重新发布到jboss中,测试记录日志。ok成功了。

开始看到的一个说法是错误的:修改%JBOSS-HOME/server//default/deploy/jboss-web.deployer/META-INF/jboss-service.xml

<attribute name="Java2ClassLoadingCompliance">true</attribute>
<attribute name="UseJBossWebLoader">true</attribute>
修改之后记录日志是可以了,因为相同的jar只加载了一次,但是如果存在2个struts的工程在jboss下,
就会出现struts.xml的加载错误。
Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar:file:/D:/eclipseCommunity/workspaceCommunity/upload/webapp/WEB-INF/lib/struts2-core-j4-2.0.9.jar!/struts-default.xml:8:72
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:208)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reload(DefaultConfiguration.java:131)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:52)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:395)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:452)
        at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:201)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3600)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4193)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at org.apache.catalina.core.StandardService.start(StandardService.java:450)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name xwork has already been loaded by bean - file:/D:/eclipseCommunity/workspaceCommunity/upload/webapp/WEB-INF/classes/struts-default.xml:8:72 - bean - jar:file:/D:/eclipseCommunity/workspaceCommunity/upload/webapp/WEB-INF/lib/struts2-core-j4-2.0.9.jar!/struts-default.xml:8:72
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:193)
        ... 24 more


把上面2个值改为false就不会出现该问题了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用警告信息中提供了一个链接,你可以参考其中的FAQ获取更多信息。另外,也可以尝试以下解决方案:检查是否缺失了log4j.properties或log4j.xml配置文件;确认log4j.properties配置文件是否位于source文件夹下;检查log4j.properties配置文件的编码是否正确。如果问题仍然存在,可以尝试删除相关的log4j jar包并刷新项目,然后重新下载并添加log4j jar包。最后,如果你怀疑是pom文件中误配置了log4j,可以再次仔细检查pom文件中的配置项。在没有添加log4j的情况下,如果你不想看到这个警告信息,可能需要对log4j的相关配置进行调整。123 #### 引用[.reference_title] - *1* [log4j:WARN No appenders could be found for logger](https://blog.csdn.net/xintonghanchuang/article/details/90903345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [解决警告信息——log4j:WARN No appenders could be found for logger(log4j的编写配置。)](https://blog.csdn.net/qq_41915723/article/details/105322987)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值