When the runtime creates the binding object, it has to give it a name (to put
in the wsdl). For the soap binding, it defaults to the service name +
"SoapBinding". It's kind of hard to set, though. The simple:server
element has a "binding" child element. You can set that to a bean of type
org.apache.cxf.binding.soap.SoapBindingConfiguration
and the bindingName property on that bean. That SHOULD do it.
Dan
On Mon January 25 2010 4:29:27 am Coder One wrote:
> I got this log in my transport factory on the getConduit()...
>
> targetInfo=BindingQName={http://services.xyz.acme.com/}XyzServiceSoapBindi
> ng, ServiceQName={http://services.xyz.acme.com/}XyzService,
> QName={http://services.xyz.acme.com/}XyzServicePort
> The question is, where did that BindingQName came from? How did CXF
> determine the BindingQName?
> I use the below client-side code to create a simple front-end to the
> service:
> ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
> factory.setServiceClass(XyzService.class);
> factory.setAddress("Holala");
> factory.setDataBinding(new
> org.apache.cxf.aegis.databinding.AegisDatabinding());
> factory.setTransportId("http://acme.com/mytransports/abc");
> On the server-side, I use the following:
>
> <simple:server id="xyzWebService"
> serviceClass="com.acme.xyz.services.XyzService"
> address="/xyzService">
> <simple:serviceBean>
> <ref bean="xyzService"/>
> </simple:serviceBean>
> <simple:dataBinding>
> <bean class="org.apache.cxf.aegis.databinding.AegisDatabinding"
> /> </simple:dataBinding>
> </simple:server>
>
> Thanks...
>
--
Daniel Kulp
[email protected]
http://www.dankulp.com/blog