Web services LinkageError:使用resteasy链接Websphere6.1中的javax/xml/namespace/QName时违反了加载程序约束

Web services LinkageError:使用resteasy链接Websphere6.1中的javax/xml/namespace/QName时违反了加载程序约束,web-services,websphere,Web Services,Websphere,我在进行web服务调用时遇到此错误。我想不出解决这个问题的办法。非常感谢您的帮助 我拥有的相关图书馆是: 轴-1.3.jar axis-jaxrpc-1.3.jar axis-saaj-1.3.jar axis-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类装入器模式:父类

我在进行web服务调用时遇到此错误。我想不出解决这个问题的办法。非常感谢您的帮助

我拥有的相关图书馆是: 轴-1.3.jar
axis-jaxrpc-1.3.jar
axis-saaj-1.3.jar
axis-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类装入器模式:父类\u最后一个 *网络模块: ->类加载器模式:应用程序\u优先

原因: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(本机方法)处 位于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)

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

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


很抱歉,我不能准确地指出问题所在;)

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

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

很抱歉,我不能准确地指出问题所在;)

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

在WebSphere7中,Axis1.3和1.4也有同样的问题 我已决定从WEB_INF\lib中的axis-jaxrpc-1.3.jar中删除QName.class

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

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

在WebSphere7中,Axis1.3和1.4也有同样的问题 我已决定从WEB_INF\lib中的axis-jaxrpc-1.3.jar中删除QName.class

这是因为QName.class