I fixed the port name from "SoapPort" to "FarePortType", and it is working now for version 2.1.5 snapshot
On Mon, Mar 23, 2009 at 6:39 PM, Christopher Cheng < [email protected]> wrote: > Hi RayKnight > > I tried both 2.1.5 snapshot (Mon Mar 23 07:32:5) and 2.2 > 2.1.5 - same problem > 2.2 - same problem > > Here's my configuration, what's wrong.... > > <jaxws:client > name="{http://webservices.mycompany.com/websvc}SoapPort<http://webservices.mycompany.com/websvc%7DSoapPort> > " > createdFromAPI="true"> > <jaxws:dataBinding> > <bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding"/> > </jaxws:dataBinding> > </jaxws:client> > > <jaxws:endpoint name="{ > http://webservices.mycompany.com/websvc}SoapPort<http://webservices.mycompany.com/websvc%7DSoapPort> > " > wsdlLocation="http://webservices.mycompany > .com/wsdl/OTA_AirFareDisplayRQ.wsdl" > createdFromAPI="true"> > <jaxws:properties> > <entry key="schema-validation-enabled" value="true" /> > </jaxws:properties> > <jaxws:dataBinding> > <bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding"/> > </jaxws:dataBinding> > </jaxws:endpoint> > > On Thu, Mar 19, 2009 at 9:57 PM, RayKnight < > [email protected]> wrote: > >> >> What version of CXF are you using? From my experience I have found that >> 2.1.4 is broken at this exact location and I've moved to 2.1.5-SNAPSHOT. >> We >> have also discovered that 2.1.5-SNAPSHOT has another problem if the web >> service you're calling doesn't have any input parameters. It appears that >> the XMLBeans databinding still needs work from a client perspective. >> >> >> Christopher Cheng wrote: >> > >> > 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 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 disp = new DispatchImpl(bus, client, >> >> mode, >> >> > context, >> >> > Object.class, getExecutor()); >> >> > configureObject(disp); >> >> > return disp; >> >> > } >> >> > >> >> >> >> >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/How-do-I-switch-DataBinding-from-JAXB-to-XMLBeans--tp22584093p22600799.html >> Sent from the cxf-user mailing list archive at Nabble.com. >> >> >
