我有一场使用errai-bus的战争,这取决于番石榴14.0.1。我正在使用Jboss部署应用程序,但是当我这样做时,Jboss正在使用它的焊接版番石榴,这是番石榴r6(很老)。这导致了可怕的类加载问题,并且errai-bus完全无法工作。
即使我将guava 14.0.1声明为我的pom中的顶级依赖项,它仍然使用guava r6。如何阻止Jboss为我的战争加载错误的番石榴版?
我尝试使用Jboss AS 6中的类加载器文件查找有关如何执行此操作的信息,但我似乎无法找到任何文档。
答案 0 :(得分:1)
您可以尝试将以下jboss-classloading.xml
添加到WEB-INF
文件夹:
<classloading xmlns="urn:jboss:classloading:1.0"
name="mywar.war"
domain="mywar_domain"
parent-domain="Ignored"
export-all="NON_EMPTY"
import-all="true">
</classloading>
在这种情况下,将war的类加载器放在mywar_domain
中,该类加载器与未定义自己的域的所有其他应用程序共享。还要选择查看其他应用程序import-all
导出的所有其他类,并将所有类公开给其他类export-all
。
部署此文件时得到的是,Web应用程序类加载器将充当顶级类加载器,因此不会与服务器库中的相同类冲突。
另见:
无论如何JBoss AS 6已经过时了,并且有很多de bugs未解决。你必须看到使用更新版本的可能性(Wildfly或JBoss EAP 6)。