BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   相互運用性   |   前へ   |   次へ   |   目次   |   索引

BEA Tuxedo CORBA クライアントと WebLogic Server EJB の接続

 

ここでは、次の内容について説明します。

 


Wlstrader Value Type サンプル・アプリケーションの概要

Wlstrader Value Type サンプル・アプリケーションは、RMI over IIOP クライアントと EJB の間の接続を例示します。特に、BEA Tuxedo で開発された CORBA C++ クライアント・アプリケーションがどのようにして WebLogic Server の EJB とやり取りできるのかが示されます。アプリケーションでは、WebLogic Server の例に含まれている Trader EJB が利用されます。Wlstrader Value Type のサンプルでは、Trader サンプル・アプリケーションのコンポーネントを利用すると同時に、独自のビルドと実行の手続きを行います。

図 2-1 は、Wlstrader Value Type サンプル・アプリケーションで実現される接続を説明しています。

図2-1 CORBA C++ クライアントから WebLogic Server EJB


 

Wlstrader Value Type の例で、BEA Tuxedo CORBA C++ クライアントは値型を利用し、OBV (Object-by-Value) を渡します。これで、IDL インターフェイスの RMI over IIOP 呼び出しがサポートされ、WebLogic Server TraderBean Enterprise JavaBean (EJB) への接続が実現されます。

値型は、値をシステム間で移動できるクラスを表します。値型は、リモート・メソッドの引数または結果として、あるいはリモートで渡されるほかのオブジェクトのフィールドとして渡すことができます。BEA Tuxedo CORBA での値型のサポートについては、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA プログラミング・リファレンス』の「第13 章 OMG IDL 文の C++ へのマッピング」を参照してください。

CORBA クライアントでは、WebLogic Server の JNDI インプリメンテーションで提供される COSNaming サービス層を呼び出して WebLogic Server インターオペラブル・オブジェクト・リファレンス (IOR) を取得します。CORBA ネーム・サービスおよび COSNaming データ構造体については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA ネーム・サービス』を参照してください。

 


Wlstrader Value Type サンプル・アプリケーションのコンポーネント

この節では、Wlstrader Value Type サンプル・アプリケーションのコンポーネントと操作について説明します。この節の内容は次のとおりです。

WebLogic Server Trader サンプル・アプリケーション

Wlstrader Value Type のサンプルは、WebLogic Server Trader サンプル・アプリケーションのコンポーネントに基づき、その XML デプロイメント・ファイルと Trader EJB を利用します。この例から最高の恩恵を得るためには、ソース・コード・ファイルを読み通して設計と手順を理解してください。デプロイメント・ファイルを調べると、Trader EJB の全体的な構造を理解できます。

Trader サンプルの WebLogic Server コード・サンプル・ファイルは、wlserver6\samples\examples\rmi_iiop\ejb\rmi_iiop ディレクトリにあります。

表2-1 Java インターフェイスの概要

Java インターフェイス

説明

Trader

このインターフェイスのメソッドは、TraderBean のパブリック・インターフェイスです。

TraderHome

このインターフェイスは、TraderBean.java のホーム・インターフェイスです。WebLogic では、コード生成のコンテナ・クラス TraderBeanC によってインプリメントされます。

表 2-1 は、この例の Java インターフェイスの概要を示しています。

表2-2 Java クラスの概要

Java クラス

説明

Tuxclient

この C++ クライアント・プログラムのロジックは、ステートレス・セッション Bean を呼び出し、演習 (Trader の作成、Trader を使用した株式の購入、値型で返される NumberTraded の取得、および Trader の削除) を実行します。

TraderBean

TraderBean はステートレス・セッション Bean です。

TradeResult

このクラスは、シリアライズ可能なインターフェイスをインプリメントし、値型で生成されたクラスを持ちません。TradeResult の状態はプライベートのインスタンス・メンバに維持され、値型の状態へのデフォルトのパブリック・アクセスはありません。TradeResult はシリアライズ可能なインターフェイスをインプリメントするので、ejbc ユーティリティは IDL ファイルでその値型を生成します。

表 2-2 は、この例の Java クラスの概要を示しています。

WebLogic Server から CORBA クライアントへのマッピング

WebLogic Server アプリケーションから CORBA クライアントへのマッピングを派生させる場合、そのマッピング情報のソースは Java ソース・ファイルで定義されている EJB クラスです。WebLogic Server には、必要な CORBA IDL ファイルを生成するための weblogic.ejbc ユーティリティがあります。それらのファイルは、ターゲット EJB の状態と振る舞いの CORBA ビューを表します。

weblogic.ejbc ユーティリティでは、次の処理が実行されます。

weblogic.ejbc ユーティリティでは、多くのコマンド修飾子がサポートされています。Wlstrader Value Type の例では、ejbc のステップでコマンド行で次の修飾子を呼び出します。

作成されたファイルは BEA Tuxedo IDL コンパイラを使用して処理され、idlSources ディレクトリからソース・ファイルが読み取られて、CORBA C++ スタブ・ファイルおよびスケルトン・ファイルが生成されます。値型を除くすべての CORBA データ型は、生成されたそれらのファイルで満たされます。値型は、それらが定義または参照される各プラットフォームでインプリメントする必要があります。-i 修飾子を指定すると、IDL コンパイラで、FileName_i.h および FileName_i.cpp という名前のインプリメンテーション・ファイルが作成されます。たとえば、次の構文では、TradeResult_i.h および TradeResult_i.cpp というインプリメンテーション・ファイルが作成されます。

idl -IidlSources -i idlSources\examples\rmi_iiop\ejb\rmi_iiop\TradeResult.idl

生成されたソース・ファイルは、値型のアプリケーション定義オペレーションのインプリメンテーションを提供します。インプリメンテーション・ファイルは、CORBA クライアント・アプリケーションに含められます。

BEA Tuxedo CORBA C++ クライアント

CORBA C++ クライアント・プログラム tuxclient では、Trader に基づく演習が行われます。Trader トランザクションの結果は、TradeResult 値型を通じてクライアントに返されます。tuxclient アプリケーションでは、次の操作が実行されます。

リスト 2-2tuxclient.cpp の抜粋コードには、Trader インスタンスを作成し、BEAS の株式を購入するステップが含まれています。

リスト 2-2 tuxclient.cpp-Trader の作成と株式の購入

. . .
// Trader インスタンスの作成
::examples::rmi_iiop::ejb::rmi_iiop::Trader_ptr trader =
home->create();

// 株式の購入
CORBA::WStringValue_ptr BEASsym = new
CORBA::WStringValue(CORBA::wstring_dup((wchar_t *)L"BEAS"));
::examples::rmi_iiop::ejb::rmi_iiop::TradeResult_ptr result;
cout << "Buying 3000 shares of BEAS" << endl;
result = trader->buy(BEASsym, 3000);
. . .

CORBA クライアントからの「購入」要求は、BEAS という銘柄の BEA 社の株式 3000 株です。実際に取り引きされる株式数は、WebLogic Server の例の ejb-jar.xml デプロイメント・ファイルで定義されている tradeLimit しきい値によって 500 になります。

リスト 2-3 ejb-jar.xml で定義された tradeLimit

. . .
<env-entry-name>
tradeLimit</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>
500</env-entry-value>
. . .

Wlstrader Value Type サンプル・アプリケーションを実行して別の結果を得るには、ejb-jar.xml ファイルの定義、または tuxclient.cpp ソース・ファイルの定数を変更します。

 


Wlstrader Value Type サンプル・アプリケーションのビルドと実行

この節では、Wlstrader Value Type サンプル・アプリケーションをビルドおよび実行するプロセスを説明します。

例を実行する前に、host2ior ユーティリティを実行して WebLogic Server インターオペラブル・オブジェクト・リファレンス (IOR) を取得する必要があります。WebLogic Server のインストールでは、これを必ず 1 回行います。このファイルは、WebLogic Server をインストールしてからアプリケーションを実行するまでにいつでも取得できます。

wlstrader サンプル・アプリケーションをビルドおよび実行するには、次の手順に従います。各ステップは、以降の節で詳しく説明します。ここで詳しく説明する手順は、WebLogic Server の wlserver6\samples\examples\rmi_iiop\ejb\rmi_iiop\package-summary.html の情報を補足するものです。

開発環境の設定

Java で開発するときには、管理された開発環境を利用するようにしてください。

  1. 「WebLogic Server Examples Guide」(製品に同梱) の説明に従って開発環境を 設定します。「Setting Up Your Environment for Building and Running the Examples」を参照してください。

  2. ユーザ・インターフェイス・ツールまたはコマンド・プロンプトを使用し て、TUXDIR 環境変数を BEA Tuxedo のインストール・ディレクトリに設定 します。

    次に例を示します。

    Windows

    > set TUXDIR=D:\TUXDIR

    UNIX

    ksh prompt> export TUXDIR=/usr/local/TUXDIR

BEA Tuxedo Wlstrader Value Type ファイルのコピー

build コマンド・スクリプトの名前を変更し、BEA Tuxedo Wlstrader Value Type のファイルを BEA Tuxedo CORBA サンプル・ディレクトリから WebLogic Server の例のビルド領域にコピーします。

  1. コマンド・プロンプトまたはユーザ・インターフェイス・ツールを使用し て、build コマンド・スクリプトの名前を識別可能な一意の名前に変更しま す。ここからは、スクリプト名 tuxbuild を使用します。このファイルは、 build コマンド・スクリプトが格納されている WebLogic Server の例のディ レクトリにコピーします。

    次に例を示します。

    Windows

    rename %TUXDIR%\samples\corba\wlstrader\build.cmd tuxbuild.cmd

    UNIX

    mv $TUXDIR/samples/corba/wlstrader/build.sh tuxbuild.sh

  2. コマンド・プロンプトまたはユーザ・インターフェイス・ツールを使用し て、BEA Tuxedo CORBA サンプルの wlstrader ディレクトリから WebLogic Server の例のビルド領域にファイルをコピーします。

    次に例を示します。

    Windows

    copy %TUXDIR%\samples\corba\wlstrader\*.*
    D:
    \bea\wlserver6\samples\examples\rmi_iiop\ejb\rmi_iiop\*.*

    UNIX

    cp $TUXDIR/samples/corba/wlstrader/*.*
    /usr/local/wlserver6/samples/examples/rmi_iiop/ejb/rmi_iiop/*.*

表 2-3 のサンプル・ファイルは、現時点で WebLogic Server の例のビルド領域にあるはずです。

表2-3 Wlstrader Value Type サンプル・ファイル

ファイル

説明

TradeResult_i.cpp

TradeResult 値型のコンストラクタを定義する C++ ソース。TradeResult_i.cppTradeResult_i.h は、TradeResult 値型の具象クラスの実際のインプリメンテーションを提供します。

TradeResult_i.h

TradeResult 値型のインプリメンテーション・クラスを定義する C++ ヘッダ・ファイル。

tuxbuild.cmd

名前変更した Windows システム用の build コマンド・ファイル。

tuxbuild.sh

名前変更した UNIX システム用の build コマンド・スクリプト。

tuxclient.cpp

CORBA クライアント・アプリケーションの C++ ソース・コード。

例のビルド

この例で名前変更した build スクリプトを実行します。このファイルは、BEA Tuxedo の samples\corba\wlstrader ディレクトリから WebLogic Server の samples\examples\rmi_iiop\ejb\rmi_iiop ディレクトリにコピーする前に名前変更したファイルです。このスクリプトでは、次のステップが実行されます (Windows 環境)。

  1. TUXDIR 環境変数を設定します。このステップは、tuxclient.cmd スクリプ トで修正できます。または、TUXDIR が既に定義されている場合はコメント・ アウトすることもできます。

  2. %TUXDIR%\bin ディレクトリで idl 実行可能プログラムを定義し、必要なコ マンド行パラメータを設定して、IDL2CPP 環境変数を設定します。

  3. build ディレクトリ構造を作成し、デプロイメント記述子をコピーし、 *.gif 画像をコピーします。

    > mkdir build build\META-INF build\images

    > copy *.xml build\META-INF

    > copy *.gif build\images

  4. EJB クラスを build ディレクトリにコンパイルします (JAR の準備)。

    > javac -d build Trader.java TraderHome.java
    TraderResult.java TraderBean.java

  5. EJB JAR ファイル (XML デプロイメント記述子を含む) を作成します。

    > cd build

    > jar cv0f std_ejb_over_iiop.jar META-INF examples images

    > cd ..

  6. JAR ファイルに対して weblogic.ejbc ユーティリティを実行します。生成 される IDL ファイルは idlSources ディレクトリに配置されるように指定し ます。

    > java weblogic.ejbc -compiler javac -keepgenerated
    -idl -idlDirectory idlSources
    -iiop build
    \std_ejb_over_iiop.jar
    %APPLICATIONS%
    \ejb_over_iiop.jar

  7. EJB インターフェイスとクライアント・アプリケーションを CLIENT_CLASSES ターゲット変数で定義されたディレクトリにコンパイルし ます。

    > javac -d %CLIENT_CLASSES% Trader.java TraderHome.java
    TradeResult.java Client.java

  8. weblogic.ejbc のステップでビルドされた IDL ファイルに対して IDL コン パイラを実行し、C++ ソース・ファイルを作成します。

    >%IDL2CPP% idlSources\examples\rmi_iiop\ejb\rmi_iiop\Trader.idl
    . . .
    >%IDL2CPP% idlSources\javax\ejb\RemoveException.idl

  9. buildobjclient コマンドを呼び出して、CORBA C++ クライアントの実行 可能プログラム tuxclient.exe をビルドします。

サーバのコンフィギュレーション

WebLogic Server の例のマニュアルで定義されているステップを調べてインプリメントし、WebLogic Server を起動します。「Starting WebLogic Server with the Examples Configuration」を参照してください。すべての例のコンフィギュレーション属性を格納するコンフィギュレーション・ファイル (WebLogic Server インストール・ディレクトリの config\examples\config.xml) を調べます。サーバ起動スクリプトは、次のようにして実行します。

Windows

prompt> startExampleServer

Windows プラットフォームでは、[スタート] メニューから起動することもできます。

UNIX

$ sh startExamplesServer.sh

例の実行

環境を設定し、tuxclient.exe 実行可能プログラムを起動して、Wlstrader Value Type サンプル・プログラムを実行します。Windows 環境では次のように行います。

  1. ejb_over_iiop.jar ファイルを WebLogic Server の CLASSPATH に追加しま す。次に例を示します。

    prompt> set CLASSPATH=%CLASSPATH%;%WL_HOME%\config\
    examples\applications\ejb_over_iiop.jar

  2. host2ior ユーティリティを実行して、WebLogic Server インターオペラブ ル・オブジェクト・リファレンス (IOR) を取得しておきます。ior.txt ファ イルは、tuxclient.exe CORBA C++ クライアント・プログラムからアク セス可能でなければなりません。このファイルは、WebLogic Server のイン ストールごとに 1 つ作成します。次に例を示します。

    prompt> java utils.host2ior hostname port

  3. 例をビルドするときに作成した実行可能クライアント・アプリケーションを 起動して、tuxclient.exe CORBA クライアント・プログラムを起動しま す。

    prompt> tuxclient.exe

  4. 次のような CORBA クライアントの出力メッセージが表示されます。


    Creating a trader

    Buying 3000 shares of BEAS
    500 shares bought
    Buying 100 shares of PSFT
    100 shares bought

    End statelessSession.Client

 


リファレンス情報

WebLogic Server アプリケーションとやり取りする BEA Tuxedo CORBA クライアント・アプリケーションの開発プロセスは EJB から始まります。新しい WebLogic Server アプリケーションを作成する場合、その最初のステップはサーバを設計およびインプリメントすることです。

以降の節では、RMI over IIOP CORBA クライアントと WebLogic Server EJB の間の接続をインプリメントするために必要な手順についての情報の参照先を示します。

WebLogic Server

次のトピックは、WebLogic Server オンライン・マニュアルで参照できます。

Object Management Group (OMG)

CORBA オブジェクトおよび値型 (値で渡すことができるオブジェクト) の情報は、OMG の Web サイト (http://www.omg.org) で参照できます。

BEA Tuxedo CORBA

BEA Tuxedo のオンライン・マニュアルでは、BEA Tuxedo 製品の CORBA について詳しく説明されています。ここで紹介する参照先では、CORBA クライアントの作成、COSNaming サービス、IDL コマンド、および BEA Tuxedo の値型のサポートについての情報を参照できます。

 

back to top previous page next page