在我们的java应用程序中,我们必须使用apache CXF 3.0.0和WSS4j 2.1.1库。为了避免类加载器问题:在我的ear项目中,如何使用ApacheCXF3.x和WSS4J 2.X,而不是安装在JBoss 6.3.0EAP6.3.0EAP模块中的CXF和WSS4J (旧版)?
发布于 2015-07-10 00:17:03
由于JBoss类加载是模块化的,因此您可以创建一个jboss-deployment-structure.xml并在ear文件中排除与CXF和WSS4J相关的模块。请参考此wiki page以供参考。您可以在模块文件夹module.xml文件下找到各个模块的名称。
例如,要排除CXF-server模块:
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<exclusions>
<module name="org.jboss.ws.cxf.jbossws-cxf-server"/>
</exclusions>
</deployment>
</jboss-deployment-structure>您显然需要确保您的pom.xml为您的CXF和WSS4J版本引入了所需的工件,而不是设置为提供的作用域。或者,您可以创建自己的自定义JBoss模块文件夹,并在其中添加库(如果这些库将由多个应用程序共享)(有助于使EAR和WAR文件更小,并在容器中集中管理整个组织中的依赖项)。在这种情况下,您可以将其设置为提供的作用域。
请记住,打包自己的库可能会破坏支持,因为它们不是容器提供的实现位的一部分。
https://stackoverflow.com/questions/31291208
复制相似问题