モジュール java.xml.ws
パッケージ javax.xml.ws.spi.http
コンテナ内のJAX-WS Webサービスの移植性のある配備に使用されるHTTP SPIを提供します(例: サーブレット・コンテナ)。 このSPIはエンド開発者向けではなく、コンテナ開発者が移植性のある方法でJAX-WSサービスを配備するための方法を提供します。
移植性のある配備は、次のように行われます。
- コンテナがアプリケーションに対して
Endpoint
オブジェクトを作成します。 端点オブジェクトを作成するために必要な情報は、Webサービス配備記述子ファイルから取得できます。 - コンテナは、配備用の
HttpContext
オブジェクトを作成する必要があります。 たとえば、サーブレット・コンテナ・ケース内のWebサービスに対し、サーブレット構成(url-patternなど)を使用してHttpContextを作成できます。 - 次に、
Endpoint.publish(HttpContext)
を使用してすべての端点を公開します。 publish()の実行中に、JAX-WSランタイムは着信要求を処理するためのHttpHandler
コールバックかHttpExchange
オブジェクトを登録します。 HttpExchangeオブジェクトは、HTTP要求と応答をカプセル化します。
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)要求処理は、すべての要求において次の手順で行われます。
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
移植性のある配備取消しは、次のように行われます。
Container --------- 1. @preDestroy on instances 2. Endpoint1.stop() ... 3. EndpointN.stop()
- 導入されたバージョン:
- 1.7, JAX-WS 2.2
-
クラスのサマリー クラス 説明 HttpContext HttpContextは、WebサービスのルートURIパスからHttpHandler
へのマッピングを表します。これは、関連付けられたコンテナ上のそのパスに送られる予定の要求を処理するために呼び出されます。HttpExchange このクラスは、一回の交換で、受信するHTTP要求と生成される応答をカプセル化します。HttpHandler HTTP要求を処理するために呼び出されるハンドラです。