You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Matthias Richter <ma...@cybercon.de> on 2012/03/30 15:18:41 UTC

CXF and XMLBeans

Hi there,

I am migrating an old xfire service to CXF.

Now I am using CXF 2.5.2 and XMLBeans 2.5.0. I generated the beans via the cxf-codegen-plugin for Maven. As I want to use the old Service Implementation Class I created a simple server frontend:

	<simple:server 
		address="/myService" 
		serviceClass="de.myservice.MyService" 
		serviceName="myns:myService"
		endpointName="myns:myService" 
		xmlns:myns="http://my.namespace.de/">

		<simple:serviceBean>
			<ref bean="myServiceImpl" />
		</simple:serviceBean>
		
		<simple:dataBinding>
			<bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" />
		</simple:dataBinding>

	</simple:server>

Now if I call that service I get the response and compare that to my old xfire/xmlbeans implementation. I get an additional unnecessary element which wraps the actual response and does not conform to the schema given by the WSDL.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns1:getMyServiceVersionResponse xmlns:ns1="http://my.namespace.de/">
         <getMyServiceVersionResponse xmlns="http://MyService.namespaceByWSDL.de/">
            <out xmlns="">MyService 1.5-SNAPSHOT</out>
         </getMyServiceVersionResponse>
      </ns1:getMyServiceVersionResponse>
   </soap:Body>
</soap:Envelope>

The element <ns1:getMyServiceVersionResponse xmlns:ns1="http://my.namespace.de/"> is the one that I want to get rid of.

Any ideas here? Thanks for the help!

Matthias

Re: CXF and XMLBeans

Posted by Daniel Kulp <dk...@apache.org>.
On Friday, March 30, 2012 03:18:41 PM Matthias Richter wrote:
> Hi there,
> 
> I am migrating an old xfire service to CXF.
> 
> Now I am using CXF 2.5.2 and XMLBeans 2.5.0. I generated the beans via the
> cxf-codegen-plugin for Maven. As I want to use the old Service
> Implementation Class I created a simple server frontend:

Most likely, you'll need to switch to the JAX-WS frontend to grab the extra 
annotations that the codegen plugin would have stuck on the Service 
interface.   If the service impl implements the interface, it should be a 
very simple update to change to the jaxws frontend.

Dan



> 
> 	<simple:server
> 		address="/myService"
> 		serviceClass="de.myservice.MyService"
> 		serviceName="myns:myService"
> 		endpointName="myns:myService"
> 		xmlns:myns="http://my.namespace.de/">
> 
> 		<simple:serviceBean>
> 			<ref bean="myServiceImpl" />
> 		</simple:serviceBean>
> 
> 		<simple:dataBinding>
> 			<bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" />
> 		</simple:dataBinding>
> 
> 	</simple:server>
> 
> Now if I call that service I get the response and compare that to my old
> xfire/xmlbeans implementation. I get an additional unnecessary element
> which wraps the actual response and does not conform to the schema given
> by the WSDL.
> 
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>    <soap:Body>
>       <ns1:getMyServiceVersionResponse
> xmlns:ns1="http://my.namespace.de/"> <getMyServiceVersionResponse
> xmlns="http://MyService.namespaceByWSDL.de/"> <out xmlns="">MyService
> 1.5-SNAPSHOT</out>
>          </getMyServiceVersionResponse>
>       </ns1:getMyServiceVersionResponse>
>    </soap:Body>
> </soap:Envelope>
> 
> The element <ns1:getMyServiceVersionResponse
> xmlns:ns1="http://my.namespace.de/"> is the one that I want to get rid
> of.
> 
> Any ideas here? Thanks for the help!
> 
> Matthias
-- 
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com