Thanks for reply, Dan
How can I provide a multiple message observer for Endpoint.publish?
Any wiki documentation?
BTW, I have another way to deploy my service
JaxWsServerFactoryBean serverFactory = new JaxWsServerFactoryBean();
//serverFactory.setBindingFactory(new HttpBindingInfoFactoryBean());
serverFactory.getServiceFactory().setDataBinding(new JAXBDataBinding());
serverFactory.setServiceClass(object.getClass());
serverFactory.setAddress(address);
serverFactory.setBus(CXFBusFactory.getDefaultBus());
Server server = serverFactory.create();
serverFactory.getServiceFactory()
.getService()
.getInInterceptors()
.add(new LoggingInInterceptor());
serverFactory.getServiceFactory()
.getService()
.getOutInterceptors()
.add(new LoggingOutInterceptor());
Service service = server.getEndpoint().getService();
service.setInvoker(new BeanInvoker(object));
server.start();
Have you a code to add that MultipleEndpointObserver in this case?
Regards,
Alexey
--
Alexey Zavizionov
eXo Platform SAS
On Tue, Nov 25, 2008 at 9:55 PM, Daniel Kulp <[EMAIL PROTECTED]> wrote:
> 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
>