【问题标题】:Jboss LinkageError: loader constraint violation: when resolving overridden methodJboss LinkageError:加载程序约束冲突:解决覆盖方法时
【发布时间】:2016-04-19 09:40:05
【问题描述】:

我有两个 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/Service$Mode;[Ljavax/xml/ws/WebServiceFeature;)Ljavax/xml/ws/Dispatch;"当前类 org/apache/cxf/jaxws/ServiceImpl 的类加载器(org/jboss/classloader/spi/base/BaseClassLoader 的实例)及其超类加载器(的实例)对于 javax 类型具有不同的 Class 对象签名中使用的 /xml/bind/JAXBContext

我已经从战争中删除了 jaxb-api-2.2.3.jar 和 jaxb-impl-2.2.4-1.jar 并进行了测试。我仍然面临同样的问题。

是什么原因?提前致谢。

【问题讨论】:

    标签: java xml web-services jboss jaxb


    【解决方案1】:

    根据您使用的 JBoss 版本,它会包含一个版本的 jaxb jar。检查您的 JBOSS_HOME/modules/system/layers/base 文件夹。

    如果您希望 JBoss 忽略它拥有的 jar 并使用您的应用程序,则需要明确告诉它这样做。这可以使用自定义模块来完成:

    1. 在 JBOSS_HOME/modules/system/layers/base/<folder_name>/main/ 中创建一个文件夹并将你的 jars 放入其中。
    2. 在此文件夹中创建一个 module.xml 文件,并将所有 jar 名称列出为 <resource-root>
    3. 在您的 Web 项目的 WEB-INF 目录中创建一个 jboss-deployment-structure.xml 文件,并在此处列出此自定义模块。

    更多详情,请查看以下链接: https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7

    【讨论】:

    • 感谢您的帖子。我会尝试回来
    • 这对您有帮助吗?
    • Sampada - 我遇到了类似的问题,我将 jars 捆绑在我的 EJB jar 中,部署在 EAR 中并使用 jboss-deployment-structure 的方式进行操作,部署时一切正常,但在重新启动服务器我得到“加载程序约束违规” - 知道为什么会发生这种情况以及如何解决它吗?部署时它似乎很奇怪,但在服务器启动时似乎被忽略了。
    猜你喜欢
    • 2017-07-05
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    相关资源
    最近更新 更多