Skip to main content

How to use Endpoint.publish(Object) ?

Posted by jitu on July 31, 2006 at 7:58 PM PDT

javax.xml.ws.Endpoint has publish(Object serverContext) method. Lot of developers have questions on how to publish endpoints using this particular method. JAX-WS RI works with the HTTP server API(slightly diffferent for tiger version). There are times one requires a complete control on the http server. In fact, some of the features like basic auth, HTTPS support for Endpoint can only be provided using this API. The downside of it is that it will not be portable(some other vendor's JDK may not support this API). JAX-WS RI supports publish(HttpContext) so that application developers can use those features in their endpoints.

        HttpServer server = HttpServer.create(new InetSocketAddress(8080), 5);
        ExecutorService threads  = Executors.newFixedThreadPool(5);
        server.setExecutor(threads);
        server.start();

        Endpoint endpoint = Endpoint.create(new RpcLitEndpoint());
        HttpContext context = server.createContext("/hello");
        endpoint.publish(context);

        ...

        endpoint.stop();
        server.stop(1);
        threads.shutdown();

For the above example, WSDL is published at http://localhost:8080/hello?wsdl