!--a11y-->
Web サービスの呼出 (クライアント側) 
このプロセスでは、クライアントの視点から、Web サービスフレームワークが Web サービス呼出を処理する方法について説明します。
以下の図は、Web サービス実装を呼び出すプロセスを示しています。

これらのコンポーネントはサーバ側のコンポーネントと類似していますが、実行する作業がいくらか異なっています。
...
1. Web サービスの機能を使用するアプリケーションは、Web サービスクライアントと呼ばれます。Web サービスクライアントは、生成済スタブによって実装されたサービスエンドポイントインタフェースを使用して、Web サービスと通信します。サービスエンドポイントインタフェースは、WSDL ポートタイプから生成されます。サービスエンドポイントインタフェースは、リモート Web サービスを表します。
2. クライアントは、生成済スタブのクラスのメソッドを使用して、プロトコルに直接アクセスすることができます。
スタブは、具体的なトランスポートのバインドによって生成されるエンティティです。スタブはサービスエンドポイントインタフェースを実装しますが、特定のトランスポートのバインド情報を含みます。
3. プロキシジェネレータはWSDL 文書を解析し、すべてのポートタイプおよびスキーマのクラスに対して、サービスエンドポイントインタフェースを生成します。プロキシジェネレータは、後で WSDL バインドエレメントを処理します。プロキシジェネレータはそれぞれのエレメントに対して適切なトランスポートのバインド情報を特定し、生成済スタブを生成するためにそのトランスポートのバインド情報を呼び出します。
4. トランスポートのバインドはスタブの生成を処理し、実行中にスタブに生成された設定に基づいてリクエストメッセージを生成します。トランスポートのバインドはリクエストが到着すると、そのリクエストを処理して、そこから Java オブジェクトを登録する必要があります。トランスポートのバインドはプラガブルなコンポーネントで、Java サービスとして実装されます。
5. サーバ側の場合と同様、プロトコルはメッセージやシステムの処理を実行するロジックです。トランスポートのバインドと同様、プロトコルはプラガブルなエレメントであり、Java サービスとして実装されます。
6. トランスポートはリクエストメッセージを取得し、コンテキスト内の設定に基づいてそのメッセージをWeb サービスに送信します。基礎となるトランスポートにヘッダを追加したり、設定を行うことができます。その後、レスポンスを待って返送します。トランスポートもプラガブルなコンポーネントであり、Java サービスとして実装されます。
参照: