You kind of have a weird mix of using the Simple frontend
(ClientProxyFactoryBean) and JAX-WS frontend (JaxWsServiceFactoryBean and
JaxWsServiceConfiguration). Not sure every issue that might cause.
Are you willing to update to using purely the JAX-WS frontend and annotating
the interface with the required annotations? That may be the easiest.
Sticking a @WebService annotation with the correct targetNamespace as well
as @WebResult annotation with the proper name and namespace attributes would
likely fix this.
If not, then you likely should stick entirely with the Simple frontend and
create the ClientProxyFactoryBean with a ReflectionServiceFactoryBean with
just the XFireCompatibilityServiceConfiguration and
DefaultServiceConfiguration things in there. That MAY do it. Not 100%
sure though.
Dan
On Sunday, May 20, 2012 02:23:06 AM inthendsun wrote:
> Hi,
> I have a ws server that wrote by XFire1.2.6, use the default databinding
> aegis.
and the thirdparty user wrote ws client wrote by CXF2.4.
>
> Now the communication between the CXF client and XFire server encountered
> something wrong:
the CXF client cannot deserialize the soap response:
>
> The interface is:
> public interface CusAssetService {
> public String cusAssetString();
> }
>
> --------------the xfire response -----------------
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
> <ns1:cusAssetStringResponse xmlns:ns1="http://service.cus.ws">
> <ns1:out>5</ns1:out>
> </ns1:cusAssetStringResponse>
> </soap:Body>
> </soap:Envelope>
> ---------------------------------------------------
>
> And I test with cxf server also with the aegis databinding, but the cxf
> client deserialize response success.
> --------------the cxf response -----------------
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <ns1:cusAssetStringResponse xmlns:ns1="http://service.cus.ws/">
> <return>5</return>
> </ns1:cusAssetStringResponse>
> </soap:Body>
> </soap:Envelope>
> ---------------------------------------------------
>
> ------------------CXF client config---------------------------------
> <bean id="client" class="ws.cus.service.CusAssetService"
> factory-bean="clientFactory" factory-method="create"/>
> <bean id="clientFactory"
> class="org.apache.cxf.frontend.ClientProxyFactoryBean">
<property
> name="serviceClass" value="ws.cus.service.CusAssetService"/> <property
> name="address" value="http://localhost:8080/xfire_server/cusAsset.ws"/>
> <property name="serviceFactory" ref="jaxWsServiceFactoryBean"></property>
> </bean>
> <bean id="jaxWsServiceFactoryBean"
> class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"
> scope="prototype">
<property name="dataBinding" ref="aegisBinding" />
> <property name="serviceConfigurations">
> <list>
> <bean
> class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/>
<bean
> class="org.apache.cxf.aegis.databinding.XFireCompatibilityServiceConfigur
> ation"/> <bean
> class="org.apache.cxf.service.factory.DefaultServiceConfiguration"/>
> </list>
> </property>
> </bean>
> <bean id="aegisBinding"
> class="org.apache.cxf.aegis.databinding.AegisDatabinding"
> scope="prototype"></bean>
> ------------------------------------------------------------------------
>
> Anyone know what happens? why it can't work.
> p.s. now the xfire can get the parameter successful
>
> thanks a lot
>
>
>
>
>
>
> (forgive me for my poor english. )
> inthendsun
--
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com