パッケージ jakarta.xml.ws.spi.http
コンテナー(サーブレットコンテナーなど)内の Jakarta XML Web Services のポータブルデプロイに使用される HTTP SPI を提供します。この SPI はエンド開発者向けではありませんが、コンテナー開発者が Jakarta XML Web Services を移植可能にデプロイする方法を提供します。
このドキュメントでの JAX-WS への参照は、特に明記されていない限り、Jakarta XML Web Services を指します。
このドキュメントでの JAXB への参照は、特に明記されていない限り、Jakarta XML Binding を指します。
ポータブルデプロイは次のように実行されます。
- コンテナーは、アプリケーションの
Endpoint
オブジェクトを作成します。エンドポイントオブジェクトを作成するために必要な情報は、Web サービスデプロイ記述子ファイルから取得できます。 - コンテナーは、デプロイの
HttpContext
オブジェクトを作成する必要があります。例: HttpContext は、サーブレットコンテナーの場合の Web サービスのサーブレット構成(URL パターンなど)を使用して作成できます。 - 次に、
Endpoint.publish(HttpContext)
を使用してすべてのエンドポイントを公開します。publish() 中に、Jakarta XML Web Services ランタイムはHttpHandler
コールバックを登録して、受信リクエストまたはHttpExchange
オブジェクトを処理します。HttpExchange オブジェクトは、HTTP リクエストとレスポンスをカプセル化します。
Container Jakarta XML Web Services 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 Jakarta XML Web Services 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
- 作成者:
- Jitendra Kotamraju
クラスのサマリー クラス 説明 HttpContext HttpContext は、Web サービスのルート URI パスから、関連付けられたコンテナー上のそのパス宛てのリクエストを処理するために呼び出されるHttpHandler
へのマッピングを表します。HttpExchange このクラスは、受信した HTTP リクエストと生成されるレスポンスを 1 つの交換でカプセル化します。HttpHandler HTTP リクエストを処理するために呼び出されるハンドラー。