参照先: 説明
| クラス | 説明 |
|---|---|
| HttpContext | HttpContext は、Web サービスのルート URI パスから、関連付けられたコンテナー上のそのパス宛てのリクエストを処理するために呼び出される HttpHandler へのマッピングを表します。 |
| HttpExchange | このクラスは、受信した HTTP リクエストと生成されるレスポンスを 1 つの交換でカプセル化します。 |
| HttpHandler | HTTP リクエストを処理するために呼び出されるハンドラー。 |
このドキュメントでの 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()
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.