我有两个war文件:A和B,使用CXF进行Web服务
A使用B中的Web服务。
B使用A。中的Web服务。
Tomcat中的一切正常。但是当我在Jboss部署时,我面临着联动错误。
引起:java.lang.LinkageError:加载器约束违规:解析重写方法时“org.apache.cxf.jaxws.ServiceImpl.createDispatch(Ljavax / xml / ws / EndpointReference; Ljavax / xml / bind / JAXBContext; Ljavax / XML / WS /服务$模式; [Ljavax / XML / WS / WebServiceFeature)Ljavax / XML / WS /调度;”当前类的类加载器(org / jboss / classloader / spi / base / BaseClassLoader的实例),org / apache / cxf / jaxws / ServiceImpl及其超类加载器(实例),具有javax类型的不同Class对象/ xml / bind /签名中使用的JAXBContext
我从战争中删除了jaxb-api-2.2.3.jar和jaxb-impl-2.2.4-1.jar并进行了测试。我仍然面临同样的问题。
是什么原因?提前谢谢。
答案 0 :(得分:1)
根据您使用的JBoss版本,将包含一个jaxb jar版本。检查JBOSS_HOME / modules / system / layers / base文件夹。
如果你希望JBoss忽略它所拥有的jar并使用你的应用程序,你需要明确告诉它这样做。这可以使用自定义模块完成:
<folder_name>
/ main /中创建一个文件夹,并将您的jar放入其中。 <resource-root>
。有关详情,请查看以下链接: https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7