パッケージ 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 リクエストを処理するために呼び出されるハンドラー。