No, I'm attention-deprived. The simplest thing to do is set the names with .aegis.xml files. Or, be sure to only feed CXF an interface, not a real class. There are no parameter names in an interface, so it will, I think, come up with the same anonymized names.
On Thu, Mar 12, 2009 at 5:27 PM, Kevin Priebe <[email protected]> wrote: > 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 >> >> >> >> > >
