我是JBoss的新手,我正在尝试在JBoss 7.0.6 GA上部署.war文件。
使用Eclipse中的“export as .war file”选项创建.war文件。
如果我在Tomcat上部署相同的.war文件,它可以正常工作。
当我在Jboss上部署时,我遇到了这个奇怪的错误:
2017-10-20 17:29:26,803 ERROR [stderr] (ServerService Thread Pool -- 106)
Caused by: java.lang.IllegalAccessError: Failed to link
org/apache/log4j/xml/ExtXMLWatchdog (Module "deployment.
[MY_WAR_NAME].war:main" from Service Module Loader): class
org.apache.log4j.xml.ExtXMLWatchdog cannot access its superclass
org.apache.log4j.xml.XMLWatchdog
我在我的网络应用程序中使用log4j-1.2.17.jar库;另外,我正在使用另一个名为util-log4j.jar的自定义库。
在log4j-1.2.17.jar中定义了类org.apache.log4j.xml.XMLWatchdog; util-log4j.jar里面定义了这个类 org.apache.log4j.xml.ExtXMLWatchdog。
似乎ExtXMLWatchdog无法看到另一个.jar中定义的XMLWatchdog,但为什么呢?
谢谢你, 干杯!
答案 0 :(得分:0)
好的,我解决了。分享解决方案:
<。>在.war文件中,在WEB-INF文件夹中,我放了一个名为的文件的JBoss部署-structure.xml
有了这个内容:
Library/Keychains
似乎JBoss配备了一些标准库,但是那些库可能是由不同的ClassLoader加载的(但不确定如此)
使用该文件,基本上我告诉JBoss忽略它自己的org.apache.log4j库。
结果是使用了我的log4j库,问题就消失了!