On Wednesday 26 November 2008 5:04:12 am Alexey Zavizionov wrote: > Thanks for reply, Dan > > How can I provide a multiple message observer for Endpoint.publish? > Any wiki documentation?
If you cast the Endpoint to our specific org.apache.cxf.jaxws.EndpointImpl, you can call the getServer() call on it to get the Server object and then follow the stuff that Sergey provided. Dan > > 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_Serve > >> >r() 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(SoapBinding > >> >Fac 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(Provide > >> >rIm pl.java:84) javax.xml.ws.Endpoint.publish(Endpoint.java:47) > >> > ============================ > >> > > >> > > >> > Regards, > >> > Alexey. > > > > -- > > Daniel Kulp > > [EMAIL PROTECTED] > > http://dankulp.com/blog -- Daniel Kulp [EMAIL PROTECTED] http://dankulp.com/blog
