See: Description
Class | Description |
---|---|
HttpContext |
HttpContext represents a mapping between the root URI path of a web
service to a
HttpHandler which is invoked to handle requests
destined for that path on the associated container. |
HttpExchange |
This class encapsulates a HTTP request received and a
response to be generated in one exchange.
|
HttpHandler |
A handler which is invoked to process HTTP requests.
|
References in this document to JAX-WS refer to the Jakarta XML Web Services unless otherwise noted.
References in this document to SAAJ refer to the Jakarta SOAP with Attachments unless otherwise noted.
References in this document to JAXB refer to the Jakarta XML Binding unless otherwise noted.
References in this document to JWS refer to the Jakarta Web Services Metadata unless otherwise noted.
The portable deployment is done as below:
Endpoint
objects for an
application. The necessary information to create Endpoint objects
may be got from web service deployment descriptor files.HttpContext
objects for the deployment. For example, a HttpContext could be
created using servlet configuration(for e.g url-pattern) for the
web service in servlet container case.Endpoint.publish(HttpContext)
. During publish(),
JAX-WS runtime registers a HttpHandler
callback to handle incoming requests or
HttpExchange
objects. The HttpExchange
object encapsulates a HTTP request and a response.
Container JAX-WS runtime --------- -------------- 1. Creates Invoker1, ... InvokerN 2. Provider.createEndpoint(...) --> 3. creates Endpoint1 configures Endpoint1 ... 4. Provider.createEndpoint(...) --> 5. creates EndpointN configures EndpointN 6. Creates ApplicationContext 7. creates HttpContext1, ... HttpContextN 8. Endpoint1.publish(HttpContext1) --> 9. creates HttpHandler1 HttpContext1.setHandler(HttpHandler1) ... 10. EndpointN.publish(HttpContextN) --> 11. creates HttpHandlerN HttpContextN.setHandler(HttpHandlerN)The request processing is done as below(for every request):
Container JAX-WS runtime --------- -------------- 1. Creates a HttpExchange 2. Gets handler from HttpContext 3. HttpHandler.handle(HttpExchange) --> 4. reads request from HttpExchange <-- 5. Calls Invoker 6. Invokes the actual instance 7. Writes the response to HttpExchange
The portable undeployment is done as below:
Container --------- 1. @preDestroy on instances 2. Endpoint1.stop() ... 3. EndpointN.stop()