On Tuesday 25 November 2008 10:19:54 am Alexey Zavizionov wrote:
> Are there any thoughts?
>
> How can I publish several ports with one service name?
>
>        String address = "http://my.service:8082/WSRPService";;
>        Endpoint.publish(address, implementor);

There isn't a way to do it.   Each endpoint needs to have a unique URL.  The 
ONLY exception we have right now is aSOAP 1.1 and a 1.2 endpoint can share 
the URL as the endpoint can be determined just from the namespace of the 
soap:envelope.   

You MAY be able to get it to work if you change the MessageObserver on the 
first registered endpoint to the MultipleEndpointObserver.   Then add some 
interceptors to figure out which endpoint to hit (probably saaj interceptor + 
something to look a the element names or similar), then register the second.   
Not something I've tried though.

Dan


>
> Regards,
> Alexey
>
> --
> Alexey Zavizionov
> eXo Platform SAS
>
> On Mon, Nov 24, 2008 at 3:08 PM, Alexey Zavizionov
>
> <[EMAIL PROTECTED]> wrote:
> > How can I publish more than one port for a service?
> >
> > With generated sources I cannot do it due to the same address for both of
> > them.
> >
> >  <wsdl:service name="WSRPService">
> >    <wsdl:port binding="v2bind:WSRP_v2_Markup_Binding_SOAP"
> > name="WSRP_v2_Markup_Service">
> >      <soap:address location="http://my.service:8082/WSRPService"/>
> >    </wsdl:port>
> >    <wsdl:port binding="v2bind:WSRP_v2_ServiceDescription_Binding_SOAP"
> > name="WSRP_v2_ServiceDescription_Service">
> >      <soap:address location="http://my.service:8082/WSRPService"/>
> >    </wsdl:port>
> >
> >
> >    protected WSRPV2MarkupPortType_WSRPV2MarkupService_Server() throws
> > Exception {
> >        System.out.println("Starting Server");
> >        Object implementor = new WSRPV2MarkupPortTypeImpl();
> >        String address = "http://my.service:8082/WSRPService";;
> >        Endpoint.publish(address, implementor);
> >    }
> >
> >    protected
> > WSRPV2ServiceDescriptionPortType_WSRPV2ServiceDescriptionService_Server()
> > throws Exception {
> >        System.out.println("Starting Server");
> >        Object implementor = new WSRPV2ServiceDescriptionPortTypeImpl();
> >        String address = "http://my.service:8082/WSRPService";;
> >        Endpoint.publish(address, implementor);
> >    }
> >
> > ============================
> > java.lang.RuntimeException: Soap 1.1 endpoint already registered on
> > address /WSRPService
> >       
> > org.apache.cxf.binding.soap.SoapBindingFactory.addListener(SoapBindingFac
> >tory.java:747)
> > org.apache.cxf.endpoint.ServerImpl.start(ServerImpl.java:122)
> > org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:263)
> > org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:201)
> > org.apache.cxf.jaxws.spi.ProviderImpl.createAndPublishEndpoint(ProviderIm
> >pl.java:84) javax.xml.ws.Endpoint.publish(Endpoint.java:47)
> > ============================
> >
> >
> > Regards,
> > Alexey.



-- 
Daniel Kulp
[EMAIL PROTECTED]
http://dankulp.com/blog

Reply via email to