I put in the original email "I am using XFire 1.2.6 (was using simple frontend 
and aegis) and CXF 2.1.4 (with jaxws and aegis).  All using tomcat with spring 
server config.".  So I am using the aegis binding.  Sorry the email was 
probably a little long...

Kevin


-----Original Message-----
From: Benson Margulies [mailto:[email protected]] 
Sent: March-12-09 2:19 PM
To: [email protected]
Subject: Re: XFire migration - old client doesn't send named parameters

What data binding are you using? What  version of CXF?



On Thu, Mar 12, 2009 at 2:10 PM, Kevin Priebe <[email protected]> wrote:
> Hi, I have ported all of our XFire services/clients to CXF and only have 1
> outstanding issue that is preventing any old XFire clients from working with
> the new CXF service.  Our old XFire clients seem to send non-named
> parameters (in0, in1) like so:
>
>
>
> <soap:Body><ns1:ping
> xmlns:ns1="http://service.realtyserver.com";><ns1:in0>testValue</ns1:in0></ns
> 1:ping></soap:Body>
>
>
>
> Whereas the WSDL has the 'in0' parameter named as 'board'.  This causes the
> parameter to be NULL when received.  The new CXF client correctly sends like
> so:
>
>
>
> <soap:Body><ns1:ping
> xmlns:ns1="http://service.realtyserver.com/";><board>testValue</board></ns1:p
> ing></soap:Body>
>
>
>
> The missing slash was also a problem, but that has been resolved since if I
> manually change the XFire request in0 -> board, and resend the request it
> works.  So I just need to figure out the parameter problem.
>
>
>
> I would really like to make this backwards compatible for the old XFire
> clients at least for a few months while we make the transition.  Is there
> any workaround for this?
>
>
>
> I am using XFire 1.2.6 (was using simple frontend and aegis) and CXF 2.1.4
> (with jaxws and aegis).  All using tomcat with spring server config.
>
>
>
> I have tried the simple frontend and now am trying the jaxws frontend with
> annotated web services to name the parameters using @WebParam since the
> simple frontend was causing the CXF client to send parameters as arg0, arg1
> etc.  Here are the relevant files:
>
>
>
> @WebService
>
> public interface IAuthService {
>
>                public boolean ping(@WebParam(name="board") String board);
>
> }
>
>
>
> @WebService(endpointInterface="com.realtyserver.service.IAuthService",
> serviceName="AuthService")
>
> public class AuthService implements IAuthService {
>
>                public boolean ping(String board) {
>
>                                return true;
>
>                }
>
> }
>
>
>
> cxf.xml
>
> --------
>
>
>
> <bean id="aegisBean"
> class="org.apache.cxf.aegis.databinding.AegisDatabinding"
> scope="prototype"/>
>
>
>
> <bean id="jaxws-and-aegis-service-factory"
>
>
> class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"
>
>                                scope="prototype">
>
>                                <property name="dataBinding"
> ref="aegisBean"/>
>
>                                <property name="serviceConfigurations">
>
>                                <list>
>
>                                                <bean
> class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/>
>
>                                                <bean
> class="org.apache.cxf.aegis.databinding.XFireCompatibilityServiceConfigurati
> on"/>
>
>                                                <bean
> class="org.apache.cxf.service.factory.DefaultServiceConfiguration"/>
>
>                                </list>
>
>                </property>
>
> </bean>
>
>
>
> <bean id="AuthServiceImpl" class="serviceImpl.AuthService"/>
>
>
>
> <jaxws:endpoint id="AuthServceEndpoint" address="/AuthService"
> implementor="#AuthServiceImpl">
>
>                <jaxws:serviceFactory>
>
>                                <ref bean="jaxws-and-aegis-service-factory"
> />
>
>                </jaxws:serviceFactory>
>
> </jaxws:endpoint>
>
>
>
> Thanks for any help.
>
> Kevin
>
>
>
>

Reply via email to