第40章 非同期アプリケーションの開発

概要

JAX-WS は、サービスに非同期でアクセスするための簡単なメカニズムを提供します。SEI は、サービスに非同期でアクセスするために使用できる追加のメソッドを指定できます。Apache CXF コードジェネレーターは、追加のメソッドを生成します。ビジネスロジックを追加するだけです。

40.1. 非同期呼び出しのタイプ

通常の同期呼び出しモードに加えて、Apache CXF は 2 つの形式の非同期呼び出しをサポートします。

  • ポーリングアプローチ: ポーリングアプローチを使用してリモート操作を呼び出すには、出力パラメーターを持たないが javax.xml.ws.Response オブジェクトを返すメソッドを呼び出します。Response オブジェクト (javax.util.concurrency.Future インターフェイスから継承) をポーリングして、応答メッセージが到達したかどうかを確認できます。
  • コールバックアプローチ: コールバックアプローチを使用してリモート操作を呼び出すには、コールバックオブジェクト (javax.xml.ws.AsyncHandler 型) をパラメーターの 1 つとして参照するメソッドを呼び出します。応答メッセージがクライアントに到達すると、ランタイムが AsyncHandler オブジェクト上でコールバックし、応答メッセージの内容を提供します。