I've got this after setting the parameters in spring. What am I missing? org.apache.cxf.interceptor.Fault: Marshalling Error: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:176) at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:166) at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:104) at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) at $Proxy37.fareRQ(Unknown Source) at com.faresheets.webservices.websvc.FarePortType_FarePortType_Client.main(FarePortType_FarePortType_Client.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Caused by: javax.xml.bind.MarshalException - with linked exception: [javax.xml.bind.JAXBException: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context] at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:331) at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:381) at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:155) ... 16 more Caused by: javax.xml.bind.JAXBException: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:242) at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:257) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:143) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) ... 20 more Caused by: javax.xml.bind.JAXBException: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:587) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:140) ... 26 more Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Marshalling Error: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:145) at $Proxy37.fareRQ(Unknown Source) at com.faresheets.webservices.websvc.FarePortType_FarePortType_Client.main(FarePortType_FarePortType_Client.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) Caused by: org.apache.cxf.interceptor.Fault: Marshalling Error: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:176) at org.apache.cxf.jaxb.io.DataWriterImpl.write(DataWriterImpl.java:166) at org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:104) at org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:299) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:251) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124) ... 7 more Caused by: javax.xml.bind.MarshalException - with linked exception: [javax.xml.bind.JAXBException: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context] at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:331) at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:257) at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:75) at org.apache.cxf.jaxb.JAXBEncoderDecoder.writeObject(JAXBEncoderDecoder.java:381) at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:155) ... 16 more Caused by: javax.xml.bind.JAXBException: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:242) at com.sun.xml.bind.v2.runtime.XMLSerializer.reportError(XMLSerializer.java:257) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:143) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:185) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:305) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:312) at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:71) at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:490) at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:328) ... 20 more Caused by: javax.xml.bind.JAXBException: org.opentravel.ota.x2003.x05.OTAAirFareDisplayRQDocument is not known to this context at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getBeanInfo(JAXBContextImpl.java:587) at com.sun.xm
On Thu, Mar 19, 2009 at 5:31 PM, Willem Jiang <[email protected]>wrote: > Hi > I don't think we need to support to change the databinding for Dispatch > API. It's a JAXWS API which relays on JAXB. > > But if you take a look at the example\wsdlfirst_xmlbeans or here[1], you > can see it is not difficult to switch the dataBinding from JAXB to > XMLBeans. > > [1] > > http://svn.apache.org/repos/asf/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/xmlbeans/cxf.xml > > Willem > > Christopher Cheng wrote: > > In the class "org.apache.cxf.jaxws.ServiceImpl" which is the only > > implementation of "javax.xml.ws.spi.ServiceDelegate" in project, > > JAXBDataBinding is hardcoded. > > So, how could I switch to XMLBeans for clients? > > > > public Dispatch<Object> createDispatch(QName portName, > > JAXBContext context, > > Mode mode, > > WebServiceFeature... features) > { > > JaxWsClientFactoryBean clientFac = new JaxWsClientFactoryBean(); > > > > //Initialize Features. > > configureObject(portName.toString() + > ".jaxws-client.proxyFactory", > > clientFac); > > AbstractServiceFactoryBean sf = null; > > try { > > *sf = createDispatchService(new JAXBDataBinding(context)); > > * } catch (ServiceConstructionException e) { > > throw new WebServiceException(e); > > } > > Endpoint endpoint = getJaxwsEndpoint(portName, sf, features); > > Client client = new ClientImpl(getBus(), endpoint, > > clientFac.getConduitSelector()); > > for (AbstractFeature af : clientFac.getFeatures()) { > > af.initialize(client, bus); > > } > > Dispatch<Object> disp = new DispatchImpl<Object>(bus, client, > mode, > > context, > > Object.class, getExecutor()); > > configureObject(disp); > > return disp; > > } > > > >
