cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Benson Margulies <bimargul...@gmail.com>
Subject Re: XFire migration - old client doesn't send named parameters
Date Thu, 12 Mar 2009 21:18:39 GMT
What data binding are you using? What  version of CXF?



On Thu, Mar 12, 2009 at 2:10 PM, Kevin Priebe <kevin@realtyserver.com> 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
>
>
>
>

Mime
View raw message