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
