Hi,

Seems you're using cxf in OSGi container, right?
If so, could you elaborate what's OSGi container you're using and how you use cxf in it? The LinkageError should come from you load jaxb api from different classloader, or there's two copys of jaxb api in your OSGi container. Generally when run cxf with OSGi container we should comment out javax.xml.bind* package from jdk and use jaxb-api bundle. I suggest you use Apache Servicemix4 as the OSGi container, which support run cxf out of the box and have a set of examples, so that you needn't take care of the underlying details.

Freeman



On 2011-5-26, at 下午5:34, sonia ayadi wrote:


Hi,



When I
generate the code Java from a WSDL I had an ERROR using CXF :



java.lang.IllegalArgumentException:
An operation with name [{http://BounceWS/}AssignEpop] already exists in this
service



I solved
this problem by commenting one of method with the same name in the WSDL file :



<wsdl:operation
name="AssignEpop">
<wsdl:input name="AssignEpopMethod1"
message="tns:AssignEpopMethod1SoapIn" />
<wsdl:output name="AssignEpopMethod1"
message="tns:AssignEpopMethod1SoapOut" />
</wsdl:operation>
<!-- <wsdl:operation name="AssignEpop">
<wsdl:input name="AssignEpopMethod2"
message="tns:AssignEpopMethod2SoapIn" />
<wsdl:output name="AssignEpopMethod2"
message="tns:AssignEpopMethod2SoapOut" />
</wsdl:operation>-->
<wsdl:operation name="AssignEpop">
<soap:operation soapAction="http://BounceWS/AssignEpopMethod1";
style="document" />
 <wsdl:input name="AssignEpopMethod1">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="AssignEpopMethod1">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<!--<wsdl:operation name="AssignEpop">
<soap:operation soapAction="http://BounceWS/AssignEpopMethod2";
style="document" />
<wsdl:input name="AssignEpopMethod2">
<soap:body use="literal" />
</wsdl:input>
<wsdl:output name="AssignEpopMethod2">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>-->

























































Now, I have
a problem when I run my program:



Exception in
thread "Thread-63" java.lang.LinkageError: loader constraint
violation: when resolving method "com.sun.xml.bind.v2.runtime.MarshallerImpl.setEventHandler(Ljavax/ xml/bind/ValidationEventHandler;)V" the class loader (instance of org/apache/felix/framework/ModuleImpl $ModuleClassLoader) of the current class, com/sun/xml/bind/v2/runtime/MarshallerImpl, and the class
loader (instance of
<bootloader>) for resolved class,
com/sun/xml/bind/v2/runtime/MarshallerImpl, have different Class objects for
the type javax/xml/bind/ValidationEventHandler
used in the signature
at
com .sun.xml.bind.v2.runtime.MarshallerImpl.<init>(MarshallerImpl.java: 154)
at
com .sun .xml .bind .v2.runtime.JAXBContextImpl.createMarshaller(JAXBContextImpl.java:734) at com .sun .xml .bind .v2.runtime.JAXBContextImpl.createMarshaller(JAXBContextImpl.java:138)
at
org .apache .cxf.jaxb.io.DataWriterImpl.createMarshaller(DataWriterImpl.java:102) at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java: 169)
at
org .apache .cxf .interceptor .AbstractOutDatabindingInterceptor .writeParts(AbstractOutDatabindingInterceptor.java:105)
at
org .apache .cxf .interceptor .BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) at org .apache .cxf .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 236)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:478)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:308)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:260)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java: 124)
at $Proxy43.dbConnectionOK(Unknown Source)
at
com .orange .m2m .smartbuilding .businessappli .drivers.impl.bounce.DriverBounce.startDriver(DriverBounce.java:204)
at
com .orange .m2m .smartbuilding .businessappli .drivers.impl.bounce.DriverBounce.getDriver(DriverBounce.java:143) at com .orange .m2m .smartbuilding .businessappli .adapters .impl.bouncews.AdapterBounceWS.adapterStarting(AdapterBounceWS.java: 254) at com .orange .m2m.smartbuilding.core.adapters.Adapter.startAdapter(Adapter.java: 207) at com .orange .m2m .smartbuilding .core.controllers.Controller.componentStarting(Controller.java:458)
at
com .orange .m2m .smartbuilding .core.components.Component.startComponent(Component.java:542) at com .orange .m2m .smartbuilding .core .starters .impl.GenericStarterImpl.startComponent(GenericStarterImpl.java:325)
at
com .orange .m2m .smartbuilding .core .starters .impl.GenericStarterImpl.buildController(GenericStarterImpl.java:116)
at
com .orange .m2m .smartbuilding .businessappli .starters.impl.bounce.StarterBounce.buildBounce(StarterBounce.java: 129)
at
com .orange .m2m .smartbuilding .businessappli .starters.impl.bounce.StarterBounce.timeOut(StarterBounce.java:145)
at com.orange.m2m.smartbuilding.core.utils.Timer$1.run(Timer.java:127)































































Can you
help me to locate the problem?



Thanks.

Sonia.                                  

---------------------------------------------
Freeman Fang

FuseSource
Email:ff...@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
Connect at CamelOne May 24-26
The Open Source Integration Conference








Reply via email to