3.2.12.4. EJB 非同期メソッド呼び出しの移行
概要
EJB 3.1 仕様では、非同期メソッド呼び出しを行う機能が導入されました。この機能の導入前に、一部のアプリケーションサーバーはプロプライエタリーの非同期機能を提供していました。JBoss EAP 4.x は org.jboss.ejb3.asynchronous
パッケージでクラスを提供し、JBoss EAP 5.x はこの目的のために org.jboss.ejb3.common.proxy.plugins.async.AsyncUtils
クラスを提供していました。これらのクラスは JBoss EAP 6 ではサポートされず、置き換える必要があります。以下の例は、JBoss EAP 6 で非同期メソッド呼び出しを行う方法を示しています。
手順3.27 非同期セッション Bean とクライアントの作成
- 非同期セッション Bean メソッドを作成します。以下の例では、
sayHelloAsync()
メソッドは@Asynchronous
アノテーションを使用して非同期としてマークされます。型String
で、必要なFuture
クラス実装を返します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - クライアントコードを作成します。利用可能な
Future.get()
メソッドの 1 つを使用して EJB を検索し、非同期メソッドを呼び出します。以下の例では、待機時間を timeout 引数および unit 引数で指定された値に制限します。Future<String> future = ejbObject.sayHelloAsync(); String response = future.get(timeout, unit);
Future<String> future = ejbObject.sayHelloAsync(); String response = future.get(timeout, unit);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow