【问题标题】:LinkageError: loader constraints violated when linking javax/xml/namespace/QName in Websphere6.1 using resteasyLinkageError: 使用 resteasy 在 Websphere6.1 中链接 javax/xml/namespace/QName 时违反加载程序约束
【发布时间】:2008-12-11 19:35:32
【问题描述】:

我在进行 Web 服务调用时收到此错误。我想不出一个解决方法。非常感谢任何帮助。

我拥有的相关库是: axis-1.3.jar
axis-jaxrpc-1.3.jar
轴-saaj-1.3.jar
轴-wsdl4j-1.5.1.jar

jaxb-api-2.1.jar jaxb-impl-2.1.8.jar jaxen-1.1-beta-9.jar jaxrs-api-1.0-beta-9.jar

在 websphere 61 中,管理员设置如下: 企业应用 -> WAR 类加载器模式:PARENT_LAST * 网络模块: -> 类加载器模式:application_FIRST

原因:java.lang.LinkageError: 链接 javax/xml/namespace/QName 类时违反加载程序约束 在 com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl.(RuntimeBuiltinLeafInfoImpl.java:224) 在 com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl.(RuntimeTypeInfoSetImpl.java:61) 在 com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:127) 在 com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.createTypeInfoSet(RuntimeModelBuilder.java:79) 在 com.sun.xml.bind.v2.model.impl.ModelBuilder.(ModelBuilder.java:152) 在 com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.(RuntimeModelBuilder.java:87) 在 com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:432) 在 com.sun.xml.bind.v2.runtime.JAXBContextImpl.(JAXBContextImpl.java:297) 在 com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139) 在 com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:117) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在 java.lang.reflect.Method.invoke(Method.java:585) 在 javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:211) 在 javax.xml.bind.ContextFinder.find(ContextFinder.java:372) 在 javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574) 在 org.jboss.resteasy.plugins.providers.jaxb.JAXBContextWrapper.(JAXBContextWrapper.java:74) 在 org.jboss.resteasy.plugins.providers.jaxb.JAXBContextWrapper.(JAXBContextWrapper.java:99) 在 org.jboss.resteasy.plugins.providers.jaxb.XmlJAXBContextFinder.createContextObject(XmlJAXBContextFinder.java:48) 在 org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBContextFinder.createContext(AbstractJAXBContextFinder.java:114) 在 org.jboss.resteasy.plugins.providers.jaxb.XmlJAXBContextFinder.findCachedContext(XmlJAXBContextFinder.java:39) 在 org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.findJAXBContext(AbstractJAXBProvider.java:49) 在 org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:112) 在 org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:88) 在 org.jboss.resteasy.client.core.MessageBodyParameterMarshaller$ClientRequestEntity.(MessageBodyParameterMarshaller.java:88) 在 org.jboss.resteasy.client.core.MessageBodyParameterMarshaller.buildRequest(MessageBodyParameterMarshaller.java:51) 在 org.jboss.resteasy.client.core.ClientInvoker.invoke(ClientInvoker.java:197) 在 org.jboss.resteasy.client.core.ClientProxy.invoke(ClientProxy.java:46) 在 $Proxy51.updateAccount(未知来源) 在 com.amg.brides.wedsimple.client.WedSimpleClientImpl.updateAccount(WedSimpleClientImpl.java:72) 在 com.amg.brides.wedsimple.web.WedSimpleUpdateAccountEvent.invokeClient(WedSimpleUpdateAccountEvent.java:24) 在 com.amg.brides.wedsimple.web.AbstractWedSimpleAccountEvent.execute(AbstractWedSimpleAccountEvent.java:35) 在 com.amg.brides.util.WebEventProcessor.processEvents(WebEventProcessor.java:29)

【问题讨论】:

    标签: web-services websphere


    【解决方案1】:

    基本问题是您正在从不正确的 jar 加载一个或多个与 xml 相关的类文件。您的应用程序服务器不允许您更改这些库,因为它已经从不同的实现加载了大部分解析器。我试图检查寻找 javax/xml/namespace 的 jar 文件的内容,但中途停止了。如果你找到它,你很有可能得到一个没有违规课程的课程。众所周知,人们会手动从外部 jar 中删除此类文件。

    您可能可以打开 som vm 选项以在容器运行时记录类加载。这是 java -verbose:class 选项。

    很抱歉,我无法确定确切的问题;)

    【讨论】:

      【解决方案2】:

      可能的解决方案(对我有用)

      在 Websphere 7 中,轴 1.3 和 1.4 存在相同的问题 我已经解决了从 WEB_INF\lib 中的 axis-jaxrpc-1.3.jar 中删除 QName.class

      这是因为 QName.class 已经存在于其他 jar 文件中。

      【讨论】:

        猜你喜欢
        • 2010-09-13
        • 1970-01-01
        • 2021-06-29
        • 2011-11-20
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 2011-07-15
        • 2021-08-04
        相关资源
        最近更新 更多