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 <[EMAIL PROTECTED]> 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 <[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
>