9 RMI-IIOPクライアントでのEJBの使用

RMI-IIOPを使用するEnterprise JavaBeansを実装することで、異機種サーバー環境でEJBを相互運用する方法を学習します。

この章の内容は次のとおりです。

JavaクライアントによるEJBへのアクセス

Java RMIクライアントはORBおよびIIOPを使用してWebLogic Serverインスタンス上のEnterprise Beanにアクセスします。

『Oracle WebLogic Server Enterprise JavaBeansバージョン2.1の開発』Enterprise JavaBeansの理解に関する項を参照してください。

CORBA/IDLクライアントによるEJBへのアクセス

Java以外のプラットフォームのCORBA/IDLクライアントから、WebLogic Server上のいかなるエンタープライズBeanオブジェクトにもアクセスできます。この場合、Javaソース・ファイルに定義されているEJBクラスがマッピング情報の源になります。WebLogic Serverには、必要なIDLファイルを生成するためのweblogic.appcユーティリティが用意されています。

これらのファイルでは、CORBAビューをターゲットEJBの状態と動作で表します。weblogic.appcユーティリティの用途は以下のとおりです。

  • EJBのクラス、インタフェース、およびデプロイメント記述子ファイルをJARファイルに格納します。

  • EJB用のWebLogic Serverコンテナ・クラスを生成します。

  • RMIコンパイラを使用して各EJBコンテナ・クラスを実行し、スタブとスケルトンを作成します。

  • これらのクラスへのCORBAインタフェースを記述するCORBA IDLファイルのディレクトリ・ツリーを生成します。

weblogic.appcユーティリティでは、様々なコマンド修飾子がサポートされています。「CORBA/IDLクライアントの開発」を参照してください。

結果として生成されたファイルはコンパイラで処理されます。コンパイラはその際に、idlSourcesディレクトリからソース・ファイルを読み込み、CORBA C++のスタブ・ファイルとスケルトン・ファイルを生成します。値タイプ以外のすべてのCORBAデータ型には、これらの生成されるファイルで十分です(『Oracle WebLogic Server RMIアプリケーションの開発』WebLogic RMI-IIOPの制約に関する項を参照)。生成されたIDLファイルは、idlSourcesディレクトリに配置されます。なお、Java-to-IDLマッピング処理には、注意すべき点が多数あります。http://www.omg.org/technology/documents/index.htm「Java言語のOMG IDLへのマッピング仕様」を参照してください。

Enterprise JavaBeansコンポーネントおよびCORBAクライアント: 開発者ガイド(http://docs.oracle.com/javase/8/docs/technotes/guides/rmi-iiop/interop.html)を参照してください。

IDL生成の例

以下の例では、作成済みのBeanからIDLを生成する方法を示します。

  1. IDLファイルを生成します。

    > java weblogic.appc -compiler javac -keepgenerated -idl -idlDirectory idlSources build\std_ejb_iiop.jar %APPLICATIONS%\ejb_iiop.jar
    
  2. EJBインタフェースとクライアント・アプリケーションをコンパイルします(この例ではCLIENT_CLASSESおよびAPPLICATIONSターゲット変数を使用しています)。

    > javac -d %CLIENT_CLASSES% Trader.java TraderHome.java TradeResult.java Client.java
    
  3. ステップ1で生成したIDLファイルに対してIDLコンパイラを実行します。

    >%IDL2CPP% idlSources\examples\rmi_iiop\ejb\Trader.idl
    . . . 
    
    >%IDL2CPP% idlSources\javax\ejb\RemoveException.idl
    
  4. C++クライアントをコンパイルします。