cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Zavizionov" <alexey.zavizio...@gmail.com>
Subject Re: How to publish multiport service?
Date Wed, 10 Dec 2008 16:08:32 GMT
Hello,

I modified our service publishing

    EndpointImpl endpoint = (EndpointImpl)Endpoint.publish(address, object);

and got an exception

[INFO] Compilation failure
 inconvertible types
found   : javax.xml.ws.Endpoint
required: org.apache.cxf.endpoint.EndpointImpl

What it could be?
How can I cast the Endpoint to the specific org.apache.cxf.jaxws.EndpointImpl?

Regards,
Alexey

On Wed, Nov 26, 2008 at 8:01 PM, Daniel Kulp <dkulp@apache.org> wrote:
> 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 <dkulp@apache.org> 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
>> >>
>> >> <alexey.zavizionov@gmail.com> 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
>> > dkulp@apache.org
>> > http://dankulp.com/blog
>
>
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://dankulp.com/blog
>

Mime
View raw message