You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Eric Miles <er...@kronos.com> on 2007/09/10 16:25:34 UTC

xfire to cxf upgrade, additional wrapping body elements?

I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
seems there is some additional wrapping of the message body requests and
responses for our services.  Under XFire, a request coming from the
XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
looks like such:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<soap:Body>
		<RetrRefTc
			xmlns="http://taws.kronos.com/services/MobileService" />
	</soap:Body>
</soap:Envelope>

Under CXF (using JaxWsProxyFactoryBean):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<ns1:retrRefTc
			xmlns:ns1="http://mobile.services.taws.kronos.com/">
			<RetrRefTc
				xmlns="http://taws.kronos.com/services/MobileService" />
		</ns1:retrRefTc>
	</soap:Body>
</soap:Envelope>

FYI, the actual java implementation's method name is retrRefTc, so I
think that's where this wrapping name is coming from.

The responses are such, first the XFire response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<RetrRefTcResp
			xmlns="http://taws.kronos.com/services/MobileService">
		</RetrRefTcResp>
	</soap:Body>
</soap:Envelope>

Then the CXF response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
	<soap:Body>
		<ns1:RetrRefTcResponse
			xmlns:ns1="http://taws.kronos.com/services/MobileService">
			<RetrRefTcResp
				xmlns="http://taws.kronos.com/services/MobileService">
			</RetrRefTcResp>
		</ns1:RetrRefTcResponse>
	</soap:Body>
</soap:Envelope>

Again, you can see CXF is wrapping the response with a RetrRefTcResponse
element.

Here are the two Spring configurations.

First XFire:

	<bean id="tawsMobileService"
		class="org.codehaus.xfire.spring.ServiceBean">
		<property name="serviceBean" ref="tawsMobileServiceImpl" />
		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
		<property name="style" value="document" />
		<property name="inHandlers">
			<list>
				<ref bean="domInHandler" />
				<ref bean="wss4jHandler" />
				<ref bean="authenticationHandler" />
			</list>
		</property>
		<property name="schemas">
			<list>
				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
			</list>
		</property>
	</bean>

Now CXF:

	<jaxws:endpoint id="tawsMobileService"
implementor="#tawsMobileServiceImpl" name="MobileService" 
		address="/MobileService">
		<jaxws:inInterceptors>
			<ref bean="wss4jInterceptor"/>
			<ref bean="saajInterceptor" />
			<ref bean="wsAuthenticationInterceptor"/>
		</jaxws:inInterceptors>
		<jaxws:schemaLocations>

<jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
		</jaxws:schemaLocations>
	</jaxws:endpoint>

This wrapping behavior is not desired.  If there is configuration
somewhere to keep this from happening, please let me know.

As I've stated at the top of the post, we have not changed ANY of our
java code, merely the configuration in Spring.  


Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Daniel Kulp <dk...@apache.org>.
Eric,

If you want to send me the sample code directly, feel free:
dan@kulp.com
I can then look at it and see if anything pops out.

Dan


On Friday 14 September 2007, Eric Miles wrote:
> Resending this, anyone with any idea?
>
> On Wed, 2007-09-12 at 08:38 -0400, Eric Miles wrote:
> > Not sure why, but this email keeps getting bounced by the apache
> > spam software, so I'm not going to able to attach code nor copy and
> > paste...
> >
> > Sorry, my first response wasn't complete (I'm in class while trying
> > to write an email).  As stated in the previous email, the response
> > from the server is also wrapped as identified in the original email
> > in the "responses" section.  I am using a client completely outside
> > the JVM running the services, with no Spring configuration.  This is
> > a testing client so how this is setup and functions is irrelevant to
> > the application itself.  I am attaching the client so you can see
> > how it is being used.  Even if the client was written/configured
> > incorrectly, I still would not expect the server to return a wrapped
> > response.  I am using the JaxWsProxyFactoryBean to programmatically
> > create my client. Again, I'd attach my client code, but the Apache
> > spam filter keeps bouncing this email (5th time now).
> >
> > Thanks again,
> > Eric
> >
> > On Tue, 2007-09-11 at 23:19 +0200, Dan Diephouse wrote:
> > > So this is the client side that is sending the wrong request? Well
> > > thats probably because the @SOAPBinding implementation is on the
> > > server impl, not the interface - which the client typically uses.
> > >
> > > If you're using the <jaxws:client> xml config, I think this can be
> > > fixed by specifying a service class as your implementation class -
> > > in which case @SOAPBinding will be read.
> > >
> > > You can also trying supply the WSDL to the client proxy. I think
> > > this can be done via the <wsdlLocation> element inside
> > > <jaxws:client>. In this case, CXF will look at the WSDL to see how
> > > to build the service model internally.
> > >
> > > Cheers,
> > > - Dan
> > >
> > > Eric Miles wrote:
> > > > Dan,
> > > >
> > > > I thought this might have to do with document vs wrapped,
> > > > however I have specified document style on the impl class as
> > > > seen below:
> > > >
> > > > @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE,
> > > > style = SOAPBinding.Style.DOCUMENT)
> > > > @WebService(serviceName = "MobileService", endpointInterface =
> > > > "com.kronos.taws.services.mobile.MobileService",
> > > > portName="MobileServicePort", name="MobileService")
> > > > public class MobileServiceImpl implements MobileService,
> > > > InitializingBean {
> > > > ...
> > > > ...
> > > > }
> > > >
> > > > The style property from the xfire spring configuration might be
> > > > an old artifact that was left over during prototyping...sorry if
> > > > that gave any confusion as to how the service was configured via
> > > > annotations.  Any more information I can provide to help
> > > > diagnose my problem?
> > > >
> > > > Thanks again,
> > > > Eric
> > > >
> > > > On Mon, 2007-09-10 at 15:35 -0400, Dan Diephouse wrote:
> > > >> Hi Eric,
> > > >>
> > > >> This is because you've specified "document" style on the
> > > >> ServiceBean inside xfire. Try adding this annotation to your
> > > >> service impl:
> > > >>
> > > >> @SOAPBinding(parameterStyle=ParameterStyle.BARE)
> > > >>
> > > >> This will tell CXF not to operate in wrapped mode, but in
> > > >> document/bare/literal.
> > > >> Cheers,
> > > >> - Dan
> > > >>
> > > >> Eric Miles wrote:
> > > >>> I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT
> > > >>> and it seems there is some additional wrapping of the message
> > > >>> body requests and responses for our services.  Under XFire, a
> > > >>> request coming from the XFire client libraries
> > > >>> (XFireProxyFactory using JaxbServiceFactory) looks like such:
> > > >>>
> > > >>> <soap:Envelope
> > > >>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > > >>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > > >>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > > >>> 	<soap:Body>
> > > >>> 		<RetrRefTc
> > > >>> 			xmlns="http://taws.kronos.com/services/MobileService" />
> > > >>> 	</soap:Body>
> > > >>> </soap:Envelope>
> > > >>>
> > > >>> Under CXF (using JaxWsProxyFactoryBean):
> > > >>>
> > > >>> <soap:Envelope
> > > >>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > > >>> <soap:Body>
> > > >>> 		<ns1:retrRefTc
> > > >>> 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
> > > >>> 			<RetrRefTc
> > > >>> 				xmlns="http://taws.kronos.com/services/MobileService" />
> > > >>> 		</ns1:retrRefTc>
> > > >>> 	</soap:Body>
> > > >>> </soap:Envelope>
> > > >>>
> > > >>> FYI, the actual java implementation's method name is
> > > >>> retrRefTc, so I think that's where this wrapping name is
> > > >>> coming from.
> > > >>>
> > > >>> The responses are such, first the XFire response:
> > > >>>
> > > >>> <soap:Envelope
> > > >>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > > >>> <soap:Body>
> > > >>> 		<RetrRefTcResp
> > > >>> 			xmlns="http://taws.kronos.com/services/MobileService">
> > > >>> 		</RetrRefTcResp>
> > > >>> 	</soap:Body>
> > > >>> </soap:Envelope>
> > > >>>
> > > >>> Then the CXF response:
> > > >>>
> > > >>> <soap:Envelope
> > > >>> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > > >>> <soap:Body>
> > > >>> 		<ns1:RetrRefTcResponse
> > > >>> 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
> > > >>> 			<RetrRefTcResp
> > > >>> 				xmlns="http://taws.kronos.com/services/MobileService">
> > > >>> 			</RetrRefTcResp>
> > > >>> 		</ns1:RetrRefTcResponse>
> > > >>> 	</soap:Body>
> > > >>> </soap:Envelope>
> > > >>>
> > > >>> Again, you can see CXF is wrapping the response with a
> > > >>> RetrRefTcResponse element.
> > > >>>
> > > >>> Here are the two Spring configurations.
> > > >>>
> > > >>> First XFire:
> > > >>>
> > > >>> 	<bean id="tawsMobileService"
> > > >>> 		class="org.codehaus.xfire.spring.ServiceBean">
> > > >>> 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
> > > >>> 		<property name="serviceFactory"
> > > >>> ref="xfire.jaxbServiceFactory" /> <property name="style"
> > > >>> value="document" />
> > > >>> 		<property name="inHandlers">
> > > >>> 			<list>
> > > >>> 				<ref bean="domInHandler" />
> > > >>> 				<ref bean="wss4jHandler" />
> > > >>> 				<ref bean="authenticationHandler" />
> > > >>> 			</list>
> > > >>> 		</property>
> > > >>> 		<property name="schemas">
> > > >>> 			<list>
> > > >>> 				<value>com/kronos/taws/services/mobile/MobileService.xsd</
> > > >>>value> </list>
> > > >>> 		</property>
> > > >>> 	</bean>
> > > >>>
> > > >>> Now CXF:
> > > >>>
> > > >>> 	<jaxws:endpoint id="tawsMobileService"
> > > >>> implementor="#tawsMobileServiceImpl" name="MobileService"
> > > >>> 		address="/MobileService">
> > > >>> 		<jaxws:inInterceptors>
> > > >>> 			<ref bean="wss4jInterceptor"/>
> > > >>> 			<ref bean="saajInterceptor" />
> > > >>> 			<ref bean="wsAuthenticationInterceptor"/>
> > > >>> 		</jaxws:inInterceptors>
> > > >>> 		<jaxws:schemaLocations>
> > > >>>
> > > >>> <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobil
> > > >>>e/MobileService.xsd</jaxws:schemaLocation>
> > > >>> </jaxws:schemaLocations>
> > > >>> 	</jaxws:endpoint>
> > > >>>
> > > >>> This wrapping behavior is not desired.  If there is
> > > >>> configuration somewhere to keep this from happening, please
> > > >>> let me know.
> > > >>>
> > > >>> As I've stated at the top of the post, we have not changed ANY
> > > >>> of our java code, merely the configuration in Spring.



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog

Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Eric Miles <er...@kronos.com>.
Resending this, anyone with any idea?

On Wed, 2007-09-12 at 08:38 -0400, Eric Miles wrote:
> Not sure why, but this email keeps getting bounced by the apache spam
> software, so I'm not going to able to attach code nor copy and paste...
> 
> Sorry, my first response wasn't complete (I'm in class while trying to
> write an email).  As stated in the previous email, the response from the
> server is also wrapped as identified in the original email in the
> "responses" section.  I am using a client completely outside the JVM
> running the services, with no Spring configuration.  This is a testing
> client so how this is setup and functions is irrelevant to the
> application itself.  I am attaching the client so you can see how it is
> being used.  Even if the client was written/configured incorrectly, I
> still would not expect the server to return a wrapped response.  I am
> using the JaxWsProxyFactoryBean to programmatically create my client.
> Again, I'd attach my client code, but the Apache spam filter keeps
> bouncing this email (5th time now).
> 
> Thanks again,
> Eric
> 
> On Tue, 2007-09-11 at 23:19 +0200, Dan Diephouse wrote:
> 
> > So this is the client side that is sending the wrong request? Well thats 
> > probably because the @SOAPBinding implementation is on the server impl, 
> > not the interface - which the client typically uses.
> > 
> > If you're using the <jaxws:client> xml config, I think this can be fixed 
> > by specifying a service class as your implementation class - in which 
> > case @SOAPBinding will be read.
> > 
> > You can also trying supply the WSDL to the client proxy. I think this 
> > can be done via the <wsdlLocation> element inside <jaxws:client>. In 
> > this case, CXF will look at the WSDL to see how to build the service 
> > model internally.
> > 
> > Cheers,
> > - Dan
> > 
> > Eric Miles wrote:
> > > Dan,
> > > 
> > > I thought this might have to do with document vs wrapped, however I have
> > > specified document style on the impl class as seen below:
> > > 
> > > @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE, style =
> > > SOAPBinding.Style.DOCUMENT)
> > > @WebService(serviceName = "MobileService", endpointInterface =
> > > "com.kronos.taws.services.mobile.MobileService",
> > > portName="MobileServicePort", name="MobileService")
> > > public class MobileServiceImpl implements MobileService,
> > > InitializingBean {
> > > ...
> > > ...
> > > }
> > > 
> > > The style property from the xfire spring configuration might be an old
> > > artifact that was left over during prototyping...sorry if that gave any
> > > confusion as to how the service was configured via annotations.  Any
> > > more information I can provide to help diagnose my problem?
> > > 
> > > Thanks again,
> > > Eric
> > > 
> > > On Mon, 2007-09-10 at 15:35 -0400, Dan Diephouse wrote:
> > > 
> > >> Hi Eric,
> > >>
> > >> This is because you've specified "document" style on the ServiceBean 
> > >> inside xfire. Try adding this annotation to your service impl:
> > >>
> > >> @SOAPBinding(parameterStyle=ParameterStyle.BARE)
> > >>
> > >> This will tell CXF not to operate in wrapped mode, but in 
> > >> document/bare/literal.
> > >> Cheers,
> > >> - Dan
> > >>
> > >> Eric Miles wrote:
> > >>> I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
> > >>> seems there is some additional wrapping of the message body requests and
> > >>> responses for our services.  Under XFire, a request coming from the
> > >>> XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
> > >>> looks like such:
> > >>>
> > >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > >>> 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > >>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > >>> 	<soap:Body>
> > >>> 		<RetrRefTc
> > >>> 			xmlns="http://taws.kronos.com/services/MobileService" />
> > >>> 	</soap:Body>
> > >>> </soap:Envelope>
> > >>>
> > >>> Under CXF (using JaxWsProxyFactoryBean):
> > >>>
> > >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > >>> 	<soap:Body>
> > >>> 		<ns1:retrRefTc
> > >>> 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
> > >>> 			<RetrRefTc
> > >>> 				xmlns="http://taws.kronos.com/services/MobileService" />
> > >>> 		</ns1:retrRefTc>
> > >>> 	</soap:Body>
> > >>> </soap:Envelope>
> > >>>
> > >>> FYI, the actual java implementation's method name is retrRefTc, so I
> > >>> think that's where this wrapping name is coming from.
> > >>>
> > >>> The responses are such, first the XFire response:
> > >>>
> > >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > >>> 	<soap:Body>
> > >>> 		<RetrRefTcResp
> > >>> 			xmlns="http://taws.kronos.com/services/MobileService">
> > >>> 		</RetrRefTcResp>
> > >>> 	</soap:Body>
> > >>> </soap:Envelope>
> > >>>
> > >>> Then the CXF response:
> > >>>
> > >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > >>> 	<soap:Body>
> > >>> 		<ns1:RetrRefTcResponse
> > >>> 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
> > >>> 			<RetrRefTcResp
> > >>> 				xmlns="http://taws.kronos.com/services/MobileService">
> > >>> 			</RetrRefTcResp>
> > >>> 		</ns1:RetrRefTcResponse>
> > >>> 	</soap:Body>
> > >>> </soap:Envelope>
> > >>>
> > >>> Again, you can see CXF is wrapping the response with a RetrRefTcResponse
> > >>> element.
> > >>>
> > >>> Here are the two Spring configurations.
> > >>>
> > >>> First XFire:
> > >>>
> > >>> 	<bean id="tawsMobileService"
> > >>> 		class="org.codehaus.xfire.spring.ServiceBean">
> > >>> 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
> > >>> 		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
> > >>> 		<property name="style" value="document" />
> > >>> 		<property name="inHandlers">
> > >>> 			<list>
> > >>> 				<ref bean="domInHandler" />
> > >>> 				<ref bean="wss4jHandler" />
> > >>> 				<ref bean="authenticationHandler" />
> > >>> 			</list>
> > >>> 		</property>
> > >>> 		<property name="schemas">
> > >>> 			<list>
> > >>> 				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
> > >>> 			</list>
> > >>> 		</property>
> > >>> 	</bean>
> > >>>
> > >>> Now CXF:
> > >>>
> > >>> 	<jaxws:endpoint id="tawsMobileService"
> > >>> implementor="#tawsMobileServiceImpl" name="MobileService" 
> > >>> 		address="/MobileService">
> > >>> 		<jaxws:inInterceptors>
> > >>> 			<ref bean="wss4jInterceptor"/>
> > >>> 			<ref bean="saajInterceptor" />
> > >>> 			<ref bean="wsAuthenticationInterceptor"/>
> > >>> 		</jaxws:inInterceptors>
> > >>> 		<jaxws:schemaLocations>
> > >>>
> > >>> <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
> > >>> 		</jaxws:schemaLocations>
> > >>> 	</jaxws:endpoint>
> > >>>
> > >>> This wrapping behavior is not desired.  If there is configuration
> > >>> somewhere to keep this from happening, please let me know.
> > >>>
> > >>> As I've stated at the top of the post, we have not changed ANY of our
> > >>> java code, merely the configuration in Spring.  
> > >>>
> > >>>
> > >>>   
> > >>
> > > 
> > 
> > 

Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Eric Miles <er...@kronos.com>.
Not sure why, but this email keeps getting bounced by the apache spam
software, so I'm not going to able to attach code nor copy and paste...

Sorry, my first response wasn't complete (I'm in class while trying to
write an email).  As stated in the previous email, the response from the
server is also wrapped as identified in the original email in the
"responses" section.  I am using a client completely outside the JVM
running the services, with no Spring configuration.  This is a testing
client so how this is setup and functions is irrelevant to the
application itself.  I am attaching the client so you can see how it is
being used.  Even if the client was written/configured incorrectly, I
still would not expect the server to return a wrapped response.  I am
using the JaxWsProxyFactoryBean to programmatically create my client.
Again, I'd attach my client code, but the Apache spam filter keeps
bouncing this email (5th time now).

Thanks again,
Eric

On Tue, 2007-09-11 at 23:19 +0200, Dan Diephouse wrote:

> So this is the client side that is sending the wrong request? Well thats 
> probably because the @SOAPBinding implementation is on the server impl, 
> not the interface - which the client typically uses.
> 
> If you're using the <jaxws:client> xml config, I think this can be fixed 
> by specifying a service class as your implementation class - in which 
> case @SOAPBinding will be read.
> 
> You can also trying supply the WSDL to the client proxy. I think this 
> can be done via the <wsdlLocation> element inside <jaxws:client>. In 
> this case, CXF will look at the WSDL to see how to build the service 
> model internally.
> 
> Cheers,
> - Dan
> 
> Eric Miles wrote:
> > Dan,
> > 
> > I thought this might have to do with document vs wrapped, however I have
> > specified document style on the impl class as seen below:
> > 
> > @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE, style =
> > SOAPBinding.Style.DOCUMENT)
> > @WebService(serviceName = "MobileService", endpointInterface =
> > "com.kronos.taws.services.mobile.MobileService",
> > portName="MobileServicePort", name="MobileService")
> > public class MobileServiceImpl implements MobileService,
> > InitializingBean {
> > ...
> > ...
> > }
> > 
> > The style property from the xfire spring configuration might be an old
> > artifact that was left over during prototyping...sorry if that gave any
> > confusion as to how the service was configured via annotations.  Any
> > more information I can provide to help diagnose my problem?
> > 
> > Thanks again,
> > Eric
> > 
> > On Mon, 2007-09-10 at 15:35 -0400, Dan Diephouse wrote:
> > 
> >> Hi Eric,
> >>
> >> This is because you've specified "document" style on the ServiceBean 
> >> inside xfire. Try adding this annotation to your service impl:
> >>
> >> @SOAPBinding(parameterStyle=ParameterStyle.BARE)
> >>
> >> This will tell CXF not to operate in wrapped mode, but in 
> >> document/bare/literal.
> >> Cheers,
> >> - Dan
> >>
> >> Eric Miles wrote:
> >>> I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
> >>> seems there is some additional wrapping of the message body requests and
> >>> responses for our services.  Under XFire, a request coming from the
> >>> XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
> >>> looks like such:
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> >>> 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >>> 	<soap:Body>
> >>> 		<RetrRefTc
> >>> 			xmlns="http://taws.kronos.com/services/MobileService" />
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> Under CXF (using JaxWsProxyFactoryBean):
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >>> 	<soap:Body>
> >>> 		<ns1:retrRefTc
> >>> 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
> >>> 			<RetrRefTc
> >>> 				xmlns="http://taws.kronos.com/services/MobileService" />
> >>> 		</ns1:retrRefTc>
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> FYI, the actual java implementation's method name is retrRefTc, so I
> >>> think that's where this wrapping name is coming from.
> >>>
> >>> The responses are such, first the XFire response:
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >>> 	<soap:Body>
> >>> 		<RetrRefTcResp
> >>> 			xmlns="http://taws.kronos.com/services/MobileService">
> >>> 		</RetrRefTcResp>
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> Then the CXF response:
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >>> 	<soap:Body>
> >>> 		<ns1:RetrRefTcResponse
> >>> 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
> >>> 			<RetrRefTcResp
> >>> 				xmlns="http://taws.kronos.com/services/MobileService">
> >>> 			</RetrRefTcResp>
> >>> 		</ns1:RetrRefTcResponse>
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> Again, you can see CXF is wrapping the response with a RetrRefTcResponse
> >>> element.
> >>>
> >>> Here are the two Spring configurations.
> >>>
> >>> First XFire:
> >>>
> >>> 	<bean id="tawsMobileService"
> >>> 		class="org.codehaus.xfire.spring.ServiceBean">
> >>> 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
> >>> 		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
> >>> 		<property name="style" value="document" />
> >>> 		<property name="inHandlers">
> >>> 			<list>
> >>> 				<ref bean="domInHandler" />
> >>> 				<ref bean="wss4jHandler" />
> >>> 				<ref bean="authenticationHandler" />
> >>> 			</list>
> >>> 		</property>
> >>> 		<property name="schemas">
> >>> 			<list>
> >>> 				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
> >>> 			</list>
> >>> 		</property>
> >>> 	</bean>
> >>>
> >>> Now CXF:
> >>>
> >>> 	<jaxws:endpoint id="tawsMobileService"
> >>> implementor="#tawsMobileServiceImpl" name="MobileService" 
> >>> 		address="/MobileService">
> >>> 		<jaxws:inInterceptors>
> >>> 			<ref bean="wss4jInterceptor"/>
> >>> 			<ref bean="saajInterceptor" />
> >>> 			<ref bean="wsAuthenticationInterceptor"/>
> >>> 		</jaxws:inInterceptors>
> >>> 		<jaxws:schemaLocations>
> >>>
> >>> <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
> >>> 		</jaxws:schemaLocations>
> >>> 	</jaxws:endpoint>
> >>>
> >>> This wrapping behavior is not desired.  If there is configuration
> >>> somewhere to keep this from happening, please let me know.
> >>>
> >>> As I've stated at the top of the post, we have not changed ANY of our
> >>> java code, merely the configuration in Spring.  
> >>>
> >>>
> >>>   
> >>
> > 
> 
> 

Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Eric Miles <er...@kronos.com>.
Dan,

That could make sense, however the response being sent by CXF also
includes this wrapping as well, see the response section from the
original email.  FYI, I'm using ethereal to sniff packets on the network
interface so I'm seeing the actual soap message hitting the wire in both
directions.

Thanks,
Eric

On Tue, 2007-09-11 at 23:19 +0200, Dan Diephouse wrote:

> So this is the client side that is sending the wrong request? Well thats 
> probably because the @SOAPBinding implementation is on the server impl, 
> not the interface - which the client typically uses.
> 
> If you're using the <jaxws:client> xml config, I think this can be fixed 
> by specifying a service class as your implementation class - in which 
> case @SOAPBinding will be read.
> 
> You can also trying supply the WSDL to the client proxy. I think this 
> can be done via the <wsdlLocation> element inside <jaxws:client>. In 
> this case, CXF will look at the WSDL to see how to build the service 
> model internally.
> 
> Cheers,
> - Dan
> 
> Eric Miles wrote:
> > Dan,
> > 
> > I thought this might have to do with document vs wrapped, however I have
> > specified document style on the impl class as seen below:
> > 
> > @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE, style =
> > SOAPBinding.Style.DOCUMENT)
> > @WebService(serviceName = "MobileService", endpointInterface =
> > "com.kronos.taws.services.mobile.MobileService",
> > portName="MobileServicePort", name="MobileService")
> > public class MobileServiceImpl implements MobileService,
> > InitializingBean {
> > ...
> > ...
> > }
> > 
> > The style property from the xfire spring configuration might be an old
> > artifact that was left over during prototyping...sorry if that gave any
> > confusion as to how the service was configured via annotations.  Any
> > more information I can provide to help diagnose my problem?
> > 
> > Thanks again,
> > Eric
> > 
> > On Mon, 2007-09-10 at 15:35 -0400, Dan Diephouse wrote:
> > 
> >> Hi Eric,
> >>
> >> This is because you've specified "document" style on the ServiceBean 
> >> inside xfire. Try adding this annotation to your service impl:
> >>
> >> @SOAPBinding(parameterStyle=ParameterStyle.BARE)
> >>
> >> This will tell CXF not to operate in wrapped mode, but in 
> >> document/bare/literal.
> >> Cheers,
> >> - Dan
> >>
> >> Eric Miles wrote:
> >>> I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
> >>> seems there is some additional wrapping of the message body requests and
> >>> responses for our services.  Under XFire, a request coming from the
> >>> XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
> >>> looks like such:
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> >>> 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >>> 	<soap:Body>
> >>> 		<RetrRefTc
> >>> 			xmlns="http://taws.kronos.com/services/MobileService" />
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> Under CXF (using JaxWsProxyFactoryBean):
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >>> 	<soap:Body>
> >>> 		<ns1:retrRefTc
> >>> 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
> >>> 			<RetrRefTc
> >>> 				xmlns="http://taws.kronos.com/services/MobileService" />
> >>> 		</ns1:retrRefTc>
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> FYI, the actual java implementation's method name is retrRefTc, so I
> >>> think that's where this wrapping name is coming from.
> >>>
> >>> The responses are such, first the XFire response:
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >>> 	<soap:Body>
> >>> 		<RetrRefTcResp
> >>> 			xmlns="http://taws.kronos.com/services/MobileService">
> >>> 		</RetrRefTcResp>
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> Then the CXF response:
> >>>
> >>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >>> 	<soap:Body>
> >>> 		<ns1:RetrRefTcResponse
> >>> 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
> >>> 			<RetrRefTcResp
> >>> 				xmlns="http://taws.kronos.com/services/MobileService">
> >>> 			</RetrRefTcResp>
> >>> 		</ns1:RetrRefTcResponse>
> >>> 	</soap:Body>
> >>> </soap:Envelope>
> >>>
> >>> Again, you can see CXF is wrapping the response with a RetrRefTcResponse
> >>> element.
> >>>
> >>> Here are the two Spring configurations.
> >>>
> >>> First XFire:
> >>>
> >>> 	<bean id="tawsMobileService"
> >>> 		class="org.codehaus.xfire.spring.ServiceBean">
> >>> 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
> >>> 		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
> >>> 		<property name="style" value="document" />
> >>> 		<property name="inHandlers">
> >>> 			<list>
> >>> 				<ref bean="domInHandler" />
> >>> 				<ref bean="wss4jHandler" />
> >>> 				<ref bean="authenticationHandler" />
> >>> 			</list>
> >>> 		</property>
> >>> 		<property name="schemas">
> >>> 			<list>
> >>> 				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
> >>> 			</list>
> >>> 		</property>
> >>> 	</bean>
> >>>
> >>> Now CXF:
> >>>
> >>> 	<jaxws:endpoint id="tawsMobileService"
> >>> implementor="#tawsMobileServiceImpl" name="MobileService" 
> >>> 		address="/MobileService">
> >>> 		<jaxws:inInterceptors>
> >>> 			<ref bean="wss4jInterceptor"/>
> >>> 			<ref bean="saajInterceptor" />
> >>> 			<ref bean="wsAuthenticationInterceptor"/>
> >>> 		</jaxws:inInterceptors>
> >>> 		<jaxws:schemaLocations>
> >>>
> >>> <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
> >>> 		</jaxws:schemaLocations>
> >>> 	</jaxws:endpoint>
> >>>
> >>> This wrapping behavior is not desired.  If there is configuration
> >>> somewhere to keep this from happening, please let me know.
> >>>
> >>> As I've stated at the top of the post, we have not changed ANY of our
> >>> java code, merely the configuration in Spring.  
> >>>
> >>>
> >>>   
> >>
> > 
> 
> 

Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Dan Diephouse <da...@mulesource.com>.
So this is the client side that is sending the wrong request? Well thats 
probably because the @SOAPBinding implementation is on the server impl, 
not the interface - which the client typically uses.

If you're using the <jaxws:client> xml config, I think this can be fixed 
by specifying a service class as your implementation class - in which 
case @SOAPBinding will be read.

You can also trying supply the WSDL to the client proxy. I think this 
can be done via the <wsdlLocation> element inside <jaxws:client>. In 
this case, CXF will look at the WSDL to see how to build the service 
model internally.

Cheers,
- Dan

Eric Miles wrote:
> Dan,
> 
> I thought this might have to do with document vs wrapped, however I have
> specified document style on the impl class as seen below:
> 
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE, style =
> SOAPBinding.Style.DOCUMENT)
> @WebService(serviceName = "MobileService", endpointInterface =
> "com.kronos.taws.services.mobile.MobileService",
> portName="MobileServicePort", name="MobileService")
> public class MobileServiceImpl implements MobileService,
> InitializingBean {
> ...
> ...
> }
> 
> The style property from the xfire spring configuration might be an old
> artifact that was left over during prototyping...sorry if that gave any
> confusion as to how the service was configured via annotations.  Any
> more information I can provide to help diagnose my problem?
> 
> Thanks again,
> Eric
> 
> On Mon, 2007-09-10 at 15:35 -0400, Dan Diephouse wrote:
> 
>> Hi Eric,
>>
>> This is because you've specified "document" style on the ServiceBean 
>> inside xfire. Try adding this annotation to your service impl:
>>
>> @SOAPBinding(parameterStyle=ParameterStyle.BARE)
>>
>> This will tell CXF not to operate in wrapped mode, but in 
>> document/bare/literal.
>> Cheers,
>> - Dan
>>
>> Eric Miles wrote:
>>> I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
>>> seems there is some additional wrapping of the message body requests and
>>> responses for our services.  Under XFire, a request coming from the
>>> XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
>>> looks like such:
>>>
>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>>> 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>>> 	<soap:Body>
>>> 		<RetrRefTc
>>> 			xmlns="http://taws.kronos.com/services/MobileService" />
>>> 	</soap:Body>
>>> </soap:Envelope>
>>>
>>> Under CXF (using JaxWsProxyFactoryBean):
>>>
>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>>> 	<soap:Body>
>>> 		<ns1:retrRefTc
>>> 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
>>> 			<RetrRefTc
>>> 				xmlns="http://taws.kronos.com/services/MobileService" />
>>> 		</ns1:retrRefTc>
>>> 	</soap:Body>
>>> </soap:Envelope>
>>>
>>> FYI, the actual java implementation's method name is retrRefTc, so I
>>> think that's where this wrapping name is coming from.
>>>
>>> The responses are such, first the XFire response:
>>>
>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>>> 	<soap:Body>
>>> 		<RetrRefTcResp
>>> 			xmlns="http://taws.kronos.com/services/MobileService">
>>> 		</RetrRefTcResp>
>>> 	</soap:Body>
>>> </soap:Envelope>
>>>
>>> Then the CXF response:
>>>
>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>>> 	<soap:Body>
>>> 		<ns1:RetrRefTcResponse
>>> 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
>>> 			<RetrRefTcResp
>>> 				xmlns="http://taws.kronos.com/services/MobileService">
>>> 			</RetrRefTcResp>
>>> 		</ns1:RetrRefTcResponse>
>>> 	</soap:Body>
>>> </soap:Envelope>
>>>
>>> Again, you can see CXF is wrapping the response with a RetrRefTcResponse
>>> element.
>>>
>>> Here are the two Spring configurations.
>>>
>>> First XFire:
>>>
>>> 	<bean id="tawsMobileService"
>>> 		class="org.codehaus.xfire.spring.ServiceBean">
>>> 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
>>> 		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
>>> 		<property name="style" value="document" />
>>> 		<property name="inHandlers">
>>> 			<list>
>>> 				<ref bean="domInHandler" />
>>> 				<ref bean="wss4jHandler" />
>>> 				<ref bean="authenticationHandler" />
>>> 			</list>
>>> 		</property>
>>> 		<property name="schemas">
>>> 			<list>
>>> 				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
>>> 			</list>
>>> 		</property>
>>> 	</bean>
>>>
>>> Now CXF:
>>>
>>> 	<jaxws:endpoint id="tawsMobileService"
>>> implementor="#tawsMobileServiceImpl" name="MobileService" 
>>> 		address="/MobileService">
>>> 		<jaxws:inInterceptors>
>>> 			<ref bean="wss4jInterceptor"/>
>>> 			<ref bean="saajInterceptor" />
>>> 			<ref bean="wsAuthenticationInterceptor"/>
>>> 		</jaxws:inInterceptors>
>>> 		<jaxws:schemaLocations>
>>>
>>> <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
>>> 		</jaxws:schemaLocations>
>>> 	</jaxws:endpoint>
>>>
>>> This wrapping behavior is not desired.  If there is configuration
>>> somewhere to keep this from happening, please let me know.
>>>
>>> As I've stated at the top of the post, we have not changed ANY of our
>>> java code, merely the configuration in Spring.  
>>>
>>>
>>>   
>>
> 


-- 
Dan Diephouse
MuleSource
http://mulesource.com | http://netzooid.com/blog

Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Eric Miles <er...@kronos.com>.
Dan,

I thought this might have to do with document vs wrapped, however I have
specified document style on the impl class as seen below:

@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE, style =
SOAPBinding.Style.DOCUMENT)
@WebService(serviceName = "MobileService", endpointInterface =
"com.kronos.taws.services.mobile.MobileService",
portName="MobileServicePort", name="MobileService")
public class MobileServiceImpl implements MobileService,
InitializingBean {
...
...
}

The style property from the xfire spring configuration might be an old
artifact that was left over during prototyping...sorry if that gave any
confusion as to how the service was configured via annotations.  Any
more information I can provide to help diagnose my problem?

Thanks again,
Eric

On Mon, 2007-09-10 at 15:35 -0400, Dan Diephouse wrote:

> Hi Eric,
> 
> This is because you've specified "document" style on the ServiceBean 
> inside xfire. Try adding this annotation to your service impl:
> 
> @SOAPBinding(parameterStyle=ParameterStyle.BARE)
> 
> This will tell CXF not to operate in wrapped mode, but in 
> document/bare/literal.
> Cheers,
> - Dan
> 
> Eric Miles wrote:
> > I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
> > seems there is some additional wrapping of the message body requests and
> > responses for our services.  Under XFire, a request coming from the
> > XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
> > looks like such:
> >
> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> > 	<soap:Body>
> > 		<RetrRefTc
> > 			xmlns="http://taws.kronos.com/services/MobileService" />
> > 	</soap:Body>
> > </soap:Envelope>
> >
> > Under CXF (using JaxWsProxyFactoryBean):
> >
> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > 	<soap:Body>
> > 		<ns1:retrRefTc
> > 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
> > 			<RetrRefTc
> > 				xmlns="http://taws.kronos.com/services/MobileService" />
> > 		</ns1:retrRefTc>
> > 	</soap:Body>
> > </soap:Envelope>
> >
> > FYI, the actual java implementation's method name is retrRefTc, so I
> > think that's where this wrapping name is coming from.
> >
> > The responses are such, first the XFire response:
> >
> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > 	<soap:Body>
> > 		<RetrRefTcResp
> > 			xmlns="http://taws.kronos.com/services/MobileService">
> > 		</RetrRefTcResp>
> > 	</soap:Body>
> > </soap:Envelope>
> >
> > Then the CXF response:
> >
> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > 	<soap:Body>
> > 		<ns1:RetrRefTcResponse
> > 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
> > 			<RetrRefTcResp
> > 				xmlns="http://taws.kronos.com/services/MobileService">
> > 			</RetrRefTcResp>
> > 		</ns1:RetrRefTcResponse>
> > 	</soap:Body>
> > </soap:Envelope>
> >
> > Again, you can see CXF is wrapping the response with a RetrRefTcResponse
> > element.
> >
> > Here are the two Spring configurations.
> >
> > First XFire:
> >
> > 	<bean id="tawsMobileService"
> > 		class="org.codehaus.xfire.spring.ServiceBean">
> > 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
> > 		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
> > 		<property name="style" value="document" />
> > 		<property name="inHandlers">
> > 			<list>
> > 				<ref bean="domInHandler" />
> > 				<ref bean="wss4jHandler" />
> > 				<ref bean="authenticationHandler" />
> > 			</list>
> > 		</property>
> > 		<property name="schemas">
> > 			<list>
> > 				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
> > 			</list>
> > 		</property>
> > 	</bean>
> >
> > Now CXF:
> >
> > 	<jaxws:endpoint id="tawsMobileService"
> > implementor="#tawsMobileServiceImpl" name="MobileService" 
> > 		address="/MobileService">
> > 		<jaxws:inInterceptors>
> > 			<ref bean="wss4jInterceptor"/>
> > 			<ref bean="saajInterceptor" />
> > 			<ref bean="wsAuthenticationInterceptor"/>
> > 		</jaxws:inInterceptors>
> > 		<jaxws:schemaLocations>
> >
> > <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
> > 		</jaxws:schemaLocations>
> > 	</jaxws:endpoint>
> >
> > This wrapping behavior is not desired.  If there is configuration
> > somewhere to keep this from happening, please let me know.
> >
> > As I've stated at the top of the post, we have not changed ANY of our
> > java code, merely the configuration in Spring.  
> >
> >
> >   
> 
> 

Re: xfire to cxf upgrade, additional wrapping body elements?

Posted by Dan Diephouse <da...@mulesource.com>.
Hi Eric,

This is because you've specified "document" style on the ServiceBean 
inside xfire. Try adding this annotation to your service impl:

@SOAPBinding(parameterStyle=ParameterStyle.BARE)

This will tell CXF not to operate in wrapped mode, but in 
document/bare/literal.
Cheers,
- Dan

Eric Miles wrote:
> I'm testing our upgrade from XFire 1.2.6 to CXF 2.1-SNAPSHOT and it
> seems there is some additional wrapping of the message body requests and
> responses for our services.  Under XFire, a request coming from the
> XFire client libraries (XFireProxyFactory using JaxbServiceFactory)
> looks like such:
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> 	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> 	<soap:Body>
> 		<RetrRefTc
> 			xmlns="http://taws.kronos.com/services/MobileService" />
> 	</soap:Body>
> </soap:Envelope>
>
> Under CXF (using JaxWsProxyFactoryBean):
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> 	<soap:Body>
> 		<ns1:retrRefTc
> 			xmlns:ns1="http://mobile.services.taws.kronos.com/">
> 			<RetrRefTc
> 				xmlns="http://taws.kronos.com/services/MobileService" />
> 		</ns1:retrRefTc>
> 	</soap:Body>
> </soap:Envelope>
>
> FYI, the actual java implementation's method name is retrRefTc, so I
> think that's where this wrapping name is coming from.
>
> The responses are such, first the XFire response:
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> 	<soap:Body>
> 		<RetrRefTcResp
> 			xmlns="http://taws.kronos.com/services/MobileService">
> 		</RetrRefTcResp>
> 	</soap:Body>
> </soap:Envelope>
>
> Then the CXF response:
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> 	<soap:Body>
> 		<ns1:RetrRefTcResponse
> 			xmlns:ns1="http://taws.kronos.com/services/MobileService">
> 			<RetrRefTcResp
> 				xmlns="http://taws.kronos.com/services/MobileService">
> 			</RetrRefTcResp>
> 		</ns1:RetrRefTcResponse>
> 	</soap:Body>
> </soap:Envelope>
>
> Again, you can see CXF is wrapping the response with a RetrRefTcResponse
> element.
>
> Here are the two Spring configurations.
>
> First XFire:
>
> 	<bean id="tawsMobileService"
> 		class="org.codehaus.xfire.spring.ServiceBean">
> 		<property name="serviceBean" ref="tawsMobileServiceImpl" />
> 		<property name="serviceFactory" ref="xfire.jaxbServiceFactory" />
> 		<property name="style" value="document" />
> 		<property name="inHandlers">
> 			<list>
> 				<ref bean="domInHandler" />
> 				<ref bean="wss4jHandler" />
> 				<ref bean="authenticationHandler" />
> 			</list>
> 		</property>
> 		<property name="schemas">
> 			<list>
> 				<value>com/kronos/taws/services/mobile/MobileService.xsd</value>
> 			</list>
> 		</property>
> 	</bean>
>
> Now CXF:
>
> 	<jaxws:endpoint id="tawsMobileService"
> implementor="#tawsMobileServiceImpl" name="MobileService" 
> 		address="/MobileService">
> 		<jaxws:inInterceptors>
> 			<ref bean="wss4jInterceptor"/>
> 			<ref bean="saajInterceptor" />
> 			<ref bean="wsAuthenticationInterceptor"/>
> 		</jaxws:inInterceptors>
> 		<jaxws:schemaLocations>
>
> <jaxws:schemaLocation>classpath:com/kronos/taws/services/mobile/MobileService.xsd</jaxws:schemaLocation>
> 		</jaxws:schemaLocations>
> 	</jaxws:endpoint>
>
> This wrapping behavior is not desired.  If there is configuration
> somewhere to keep this from happening, please let me know.
>
> As I've stated at the top of the post, we have not changed ANY of our
> java code, merely the configuration in Spring.  
>
>
>   


-- 
Dan Diephouse
MuleSource
http://mulesource.com | http://netzooid.com/blog