Oracle® Fusion Middleware Oracle WebLogic Server スタンドアロン クライアント プログラマーズ ガイド 11g リリース 1 (10.3.1) B55526-01 |
|
![]() 戻る |
![]() 次へ |
RMI-IIOP を使用するエンタープライズ JavaBean を実装することで、以下のような異機種サーバ環境で EJB を相互運用できます。
Java RMI クライアントから、ORB および IIOP を使用して、WebLogic Server インスタンス上のエンタープライズ Bean にアクセスできます。『Oracle Fusion Middleware Oracle WebLogic Server エンタープライズ JavaBeans (EJB) プログラマーズ ガイド』の「エンタープライズ JavaBean について」を参照してください。
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
ユーティリティでは、さまざまなコマンド修飾子がサポートされています。「9 CORBA/IDL クライアントの開発」を参照してください。
結果として生成されたファイルはコンパイラで処理されます。コンパイラはその際に、idlSources ディレクトリからソース ファイルを読み込み、CORBA C++ のスタブ ファイルとスケルトン ファイルを生成します。値タイプ以外のすべての CORBA データ型に対しては、これらの生成されるファイルで十分です (詳細については、『Oracle Fusion Middleware Oracle WebLogic Server RMI プログラマーズ ガイド』の「WebLogic RMI-IIOP の制約事項」を参照)。生成された IDL ファイルは、idlSources ディレクトリに配置されます。なお、Java-to-IDL マッピング処理には、注意すべき点が多数あります。http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm
の「Java 言語の OMG IDL へのマッピング仕様」を参照してください。
また、Sun でも詳細なガイド「Enterprise JavaBeans Components and CORBA Clients: A Developer Guide」が (http://java.sun.com/j2se/1.4/docs/guide/rmi-iiop/interop.html
) に提供されています。
以下の例では、作成済みの Bean から IDL を生成する方法を示します。
IDL ファイルを生成します。
> java weblogic.appc -compiler javac -keepgenerated -idl -idlDirectory idlSources build\std_ejb_iiop.jar %APPLICATIONS%\ejb_iiop.jar
EJB インタフェースとクライアント アプリケーションをコンパイルします (この例では CLIENT_CLASSES および APPLICATIONS ターゲット変数を使用しています)。
> javac -d %CLIENT_CLASSES% Trader.java TraderHome.java TradeResult.java Client.java
手順 1 で生成した IDL ファイルに対して IDL コンパイラを実行します。
>%IDL2CPP% idlSources\examples\rmi_iiop\ejb\Trader.idl . . . >%IDL2CPP% idlSources\javax\ejb\RemoveException.idl
C++ クライアントをコンパイルします。