別のアプリケーションにあるローカル EJB コンポーネントを呼び出す Enterprise JavaBeans アプリケーションの使用
Enterprise JavaBeans (EJB) 仕様では、 同じアプリケーション内にパッケージされた EJB コンポーネントに対してローカル・クライアント・ビューがサポートされていることが必要です。これには、ローカル・ホーム、ローカル・ビジネス・インターフェース、および no-interface ビューが含まれます。ローカル・クライアント・ビューは、同じアプリケーション内にパッケージされていない EJB コンポーネントに対してもサポートされますが、 追加の構成が必要です。
このタスクについて
本製品は、別のアプリケーション内にパッケージされた EJB コンポーネントへのローカル・クライアント・ビューへのアクセスを、次のようないくつかの制限付きでサポートしています。
- ローカル・インターフェースと、ローカル・インターフェースによって使用されるすべてのパラメーター・タイプ、戻りタイプ、および例外タイプは、 呼び出し側アプリケーションとターゲット EJB アプリケーションの両方のクラス・ローダーに可視でなければなりません。それらが確実に可視であるようにするには、 サーバー・クラス・ローダーが関連付けられている共有ライブラリーを使用するか、または、共通ライブラリー参照を両方のアプリケーションで使用します。
- ターゲット EJB アプリケーションが停止したときには、EJB への参照でキャッシュに入れられたものがあれば、呼び出し側アプリケーションの再始動によってそれらをリフレッシュする必要があります。最も簡単な解決方法は、 呼び出し側アプリケーションが依存するターゲット EJB アプリケーションを再始動するときは、必ず呼び出し側アプリケーションを再始動することです。
手順
以下の例のように、構成を server.xml ファイルに追加します。
<library id="ejbInterfaceLib">
<file name="${server.config.dir}/lib/ejbInterfaceLib.jar"/>
</library>
<webApplication id="ejbClient" location="ejbClient.war">
<classloader commonLibraryRef="ejbInterfaceLib"/>
</webApplication>
<ejbApplication id="ejbApp" location="ejbApp.ear">
<classloader commonLibraryRef="ejbInterfaceLib"/>
</ejbApplication>