It must have been the late nights. It is getConduit(EndpointInfo ep) in the transport factory...ep.getAddress()...of course :)
----- Original Message ---- From: Coder One <[email protected]> To: [email protected] Sent: Mon, January 25, 2010 1:23:57 PM Subject: Re: Config Head Scratcher I was hoping to key off of "service1" in order to pick the right JMS destination (our own lookup system), but it seems like I can't get to "service1" from the Conduit.prepare(Message)....is there a way to do that? ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); factory.setServiceClass(XyzService.class); factory.setAddress("service1"); factory.setDataBinding(new org.apache.cxf.aegis.databinding.AegisDatabinding()); factory.setTransportId("http://acme.com/mytransports/abc"); Thanks, ----- Original Message ---- From: Daniel Kulp <[email protected]> To: [email protected] Cc: Coder One <[email protected]> Sent: Mon, January 25, 2010 10:49:30 AM Subject: Re: Config Head Scratcher 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
