Apache camel 调用webservice方法时发生LinkageError

Apache camel 调用webservice方法时发生LinkageError,apache-camel,cxf,linkageerror,Apache Camel,Cxf,Linkageerror,我有一个ApacheServiceMix(骆驼2.9)路由,它调用一个bean,然后发出一个SOAP请求。SOAP代码是通过wsdl2java生成的,工作正常(cxf 2.4.0)。我遇到的问题是,当抛出SOAP错误时,我会遇到以下问题: Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loadi

我有一个ApacheServiceMix(骆驼2.9)路由,它调用一个bean,然后发出一个SOAP请求。SOAP代码是通过wsdl2java生成的,工作正常(cxf 2.4.0)。我遇到的问题是,当抛出SOAP错误时,我会遇到以下问题:

Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "javax/xml/soap/SOAPFault"
    at javax.xml.ws.soap.SOAPFaultException.<init>(SOAPFaultException.java:28)
    at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)[175:org.apache.cxf.bundle:2.5.0.fuse-7-061]
    at $Proxy120.catalogProductAttributeMediaRemove(Unknown Source)
    at com.boohoo.magento.MagentoProducts.deleteImageFromProduct(MagentoProducts.java:403)[769:magento-soap-api:1.0.0.SNAPSHOT]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.6.0_29]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.0_29]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.0_29]
    at java.lang.reflect.Method.invoke(Method.java:597)[:1.6.0_29]
    at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:340)
    at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:237)
    at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)
由以下原因引起:java.lang.LinkageError:加载程序约束冲突:加载程序(的实例)以前为名为“javax/xml/soap/SOAPFault”的不同类型启动加载
位于javax.xml.ws.soap.SOAPFaultException.(SOAPFaultException.java:28)
在org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)[175:org.apache.cxf.bundle:2.5.0.fuse-7-061]
位于$Proxy120.catalogProductAttributeMediaRemove(未知源)
在com.boohoo.magento.MagentoProducts.deleteImageFromProduct(MagentoProducts.java:403)[769:magentoSOAP api:1.0.0.SNAPSHOT]
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)[:1.6.0_29]
在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[:1.6.029]
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[:1.6.029]
在java.lang.reflect.Method.invoke(Method.java:597)[:1.6.029]
位于org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:340)
在org.apache.camel.component.bean.MethodInfo$1.procedure(MethodInfo.java:237)
位于org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:166)
通过谷歌搜索(我的背景是C#),错误似乎表明该类已加载多次,但我不明白这是怎么可能的,因为SOAPFaultException不是我的类之一

有什么想法吗


干杯。

我发现这是servicemix配置的问题。请参阅:

查找名为
saajapi.xml的jar
。它包含标准JRE(在
rt.jar
中)中也存在的类。对不起,我不明白你的意思。我应该看哪里?它是
saajapi.jar
,而不是
.xml
。看起来您的应用程序已经从
rt.jar
和其他地方加载了
javax.xml.soap.SOAPFault
。你使用什么外部库?我想我发现了问题所在。我的web服务包(CXF1.4)显示它在eclipse中的“maven依赖项”下使用了另一个web服务包(即rpc,使用Axis1.4)。我不知道为什么会这样,因为这两个包从不互相交谈,而且有点困惑,因为它不允许我删除它……我已经更新了maven依赖项,我的cxf包不再引用rpc包。我已经完成了清理/安装并重新启动了ApacheServiceMix,但仍然收到链接错误。。。