从jboss AS 6类加载中排除jar

时间:2014-11-26 01:34:26

标签: java maven jboss jboss6.x errai

我有一场使用errai-bus的战争,这取决于番石榴14.0.1。我正在使用Jboss部署应用程序,但是当我这样做时,Jboss正在使用它的焊接版番石榴,这是番石榴r6(很老)。这导致了可怕的类加载问题,并且errai-bus完全无法工作。

即使我将guava 14.0.1声明为我的pom中的顶级依赖项,它仍然使用guava r6。如何阻止Jboss为我的战争加载错误的番石榴版?

我尝试使用Jboss AS 6中的类加载器文件查找有关如何执行此操作的信息,但我似乎无法找到任何文档。

1 个答案:

答案 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)。