JAX-WS Web サービスオペレーションの非同期呼び出し
関連項目
クライアントが JAX-WS Web サービスオペレーションを非同期的に呼び出す場合、クライアントは、応答の受信を待つ必要はありません。クライアントがこの通信方式を使用するときは、「ポーリング」方式または「コールバック」方式で Web サービスを利用することになります。
- ポーリング。クライアントが Web サービスメソッドを呼び出し、結果を繰り返し要求します。ポーリングは、呼び出し側スレッドをブロックするためにブロッキング動作になります。このため、GUI アプリケーションでは使用されません。
- コールバック。クライアントは、Web サービスメソッドの呼び出し中にコールバックハンドラを渡します。結果が入手可能になると、ハンドラの handleResponse() メソッドが呼び出されます。この方式は応答を待つ必要がないため、GUI アプリケーションに適しています。たとえば、GUI イベントハンドラから呼び出しを行ってもすぐに制御が戻り、ユーザーインタフェースが応答しやすい状態に保たれます。
注次に説明するように、IDE を使用してスケルトン非同期メソッドを生成することができます。
Web サービスオペレーションを非同期的に呼び出す
- Web サービスクライアントを作成します。
- Web サービスクライアントから Web アプリケーションから配備する場合は、サーブレットまたは JSP ページから Web サービスを呼び出すことができます。Web サービスクライアントを Java アプリケーションから配備する場合は、Java ソースファイルを使用するため、次のいずれかを行います。
- サーブレットなどの Java ソースファイルを作成する。
- Web アプリケーションまたは JSP ファイルを作成したときに自動的に作成されるデフォルトの index.jsp を利用する。
- 「プロジェクト」ウィンドウで「Web サービス参照」ノードを展開し、Web サービスノード (「Web サービス参照」ノードの最初のノード) を右クリックして、「Web サービス属性を編集」を選択します。
- 「Web サービス属性を編集」エディタで、「ポートタイプオペレーション」ノードにある、呼び出す Web サービスオペレーションと同じ名前のノードを展開します。
- 「非同期クライアントを有効にする」を選択します。「了解」をクリックします。
- ソースエディタでファイルを開き、次のいずれかを行います。
- 「Web サービス参照」ノードを展開し、非同期オペレーションを表すノードに達するまで、サブノードを展開し続けます。マウスを使用し、ファイルに格納する必要のある場所までノードをドラッグ&ドロップします。
- Web サービスを呼び出す場所から、メソッド (Java ファイルの場合) またはソースエディタ内の任意の場所 (JSP ファイルの場合) を右クリックし、「Web サービスクライアントのリソース」>「Web サービスオペレーションを呼び出す」を選択します。「呼び出すオペレーションを選択」ダイアログが表示されます。ノードを展開し、非同期オペレーションを選択します。「了解」をクリックします。
IDE によって、Web サービスの非同期呼び出しに必要なコードがファイルに追加されます。
- 関連項目
- Web サービスについて
著作権と商標について