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 > > > >
