Hi there,

I want to create multiple restful webservice at runtime like

        /String address = "http://localhost:9001/rest/myService_1";;
             org.apache.cxf.jaxws.EndpointImpl endpointImpl =
(EndpointImpl)Endpoint.create(HTTPBinding.HTTP_BINDING, new
RestWebServiceProvider() );
            endpointImpl.publish( address );
            endpointImpl.getInInterceptors().add( ... );
        .../
        
where each webservice will have a different address and
RestWebServiceProvider is a simple Provider service like        

        /@WebServiceProvider()
        @ServiceMode(value = Service.Mode.PAYLOAD)
        public class RestWebServiceProvider implements Provider<DOMSource> {
                ...
        }/

Now to display info of each webservice created in browser(I guess the
proper/professional way is JMX..), I will need to access
EndpointImpl/Service/Server created above BUT I can't quiet figure out how
to do that. For example, BusFactory.getDefaultBus() doesn't return 
a handle to retrieve those data.

The easiest way I can see how to do that is to create a class to keep all
references of endpontImpl instances created above, e.g.

   MyEndpointUtil.add( endpointImpl ); // do this right after each
webservice is created
   
Then to get all endpointImpl, I can simply do something like

  List<EndpointImpl> endpointImplList =
MyEndpointUtil.getAllMyEndpointImpl();
  
to access those info like

        /for ( EndpointImpl endpointImpl: endpointImplList ) {
                Server server = endpointImpl.getServer();
                Service service = endpointImpl.getService();
                String url = endpointImpl.getPublishedEndpointUrl();
                ..
        }/
    
Is there an easier way to do that or am I off the track?

Thanks

Sam




--
View this message in context: 
http://cxf.547215.n5.nabble.com/Access-all-webservices-created-in-Bus-at-runtime-tp5722307.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to