Apcoordinator ユーザーズガイド |
目次
![]() ![]() |
第2部 Apcoordinatorコアの機能 | > 第7章 リモート共通インタフェース |
import com.fujitsu.uji.ext.Call; import com.fujitsu.uji.ext.CallFactory; import com.fujitsu.uji.ext.UjiRemoteException; import com.fujitsu.uji.ext.UjiTargetException; import com.fujitsu.uji.ext.UjiCreateException; public Object doSomething(DispatchContext context, DataBean dataBean){ CallFactory factory = context.getCallFactory(); try { Call call = factory.createCall("MySessionBean"); // 名前を指定する ResponseBean response = (ResponseBean)call.invoke(dataBean,"update"); // 送信するデータとコマンド名を指定して呼び出す ... } catch (UjiCreateException e) { // createCallメソッドで発生した例外 ... } catch (UjiRemoteException e) { // 通信中の例外 // invokeメソッドで発生する。 ... } catch (UjiTargetException e) { // 呼び出したセションBeanで発生した例外 // invokeメソッドで発生する。 ... } }
処理の手順は以下のようになります。
DispatchContext
クラスのgetCallFactory
メソッドでCallFactory
インタフェースを取得します。
CallFactory
のcreateCall
メソッドを呼び出し、Callインタフェースを取得します。
invoke
メソッドで、セションBeanを呼び出します。invoke
メソッドの引数に与えたデータとコマンド名が、呼び出されたセションBeanに送信されます。
invoke
メソッドの返り値として取得できます。 上記の手順3でデータを送信せずコマンドのみを指定したい場合は、データとしてnullを指定してください。この場合、呼び出されたセションBeanでは、入力データを指定しない形式の行がコマンドマップから検索され、指定したコマンドに対応するメソッドが呼び出されます。
CallFactory
のcreateCall
メソッドは、Callインタフェースの作成に失敗するとUjiCreateException
を発生します。UjiCreateException
のgetRootCause
メソッドで、失敗の原因となった例外が取得できます。
Callインタフェースのinvoke
メソッドは以下の2種類の例外を発生します。
UjiRemoteException
UjiRemoteException
のgetRootCause
メソッドで失敗の原因となった例外が取得できます。
UjiTargetException
UjiTargetException
そのものではなく、そのサブクラスであるEJBApplicationException
が例外として使用されます。原因となった例外の取得方法詳細はAPIリファレンスを参照してください。
セションBeanの動作については、EJBの呼び出しを参照してください。
目次
![]() ![]() |