Jboss部署错误:A类无法访问其超类B

时间:2017-10-23 15:12:06

标签: java jboss

我是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,但为什么呢?

谢谢你, 干杯!

1 个答案:

答案 0 :(得分:0)

好的,我解决了。分享解决方案:

<。>在.war文件中,在WEB-INF文件夹中,我放了一个名为

的文件

的JBoss部署-structure.xml

有了这个内容:

Library/Keychains

似乎JBoss配备了一些标准库,但是那些库可能是由不同的ClassLoader加载的(但不确定如此)

使用该文件,基本上我告诉JBoss忽略它自己的org.apache.log4j库。

结果是使用了我的log4j库,问题就消失了!