このトピックでは、J2EE アプリケーション サーバーにデプロイされた EJB リモート オブジェクトのメソッドを呼び出す EJB Client ツールを構成および適用する方法について説明します。このセクションの内容:

EJB Client ツールとは

EJB Client は、JNDI クエリーまたは Object Data Bank から EJB リモートオブジェクトを取得します。その後、取得したオブジェクトのメソッドを呼び出すことができます。メソッドの戻り値は、 Diff ツールや Object Data Bank などの連結されたツールに渡すことができます。

EJB Client ツールを使用して EJB リモート オブジェクトの特定のメソッドを呼び出すには、リモート オブジェクトのソースを指定する必要があります。EJB リモートオブジェクトは、JNDI クエリーを使用してリモート ディレクトリから取得するか、SOAtest のローカルな Object Data Bank から取得できます。後者の場合、前に呼び出した EJB Client ツールから戻り値として返された EJB リモート オブジェクトを Object Data Bank に格納しておく必要があります。

EJB Client ツールは、少なくとも 1 回は JNDI クエリーを使用して EJB リモート オブジェクトを取得する必要があります。 その後は、Object Data Bank を使用して同じ EJB リモート オブジェクトを取得できます。これによって、同じ EJB リモート オブジェクトを取得するために複数回 JNDI クエリーを実行する必要がなくなります。

EJB 2.0 のステートフル EJB の場合は、Object Data Bank ツールを連結して戻り値の EJB オブジェクトを保存します。これにより、後続のテストでメソッドを呼び出すことができます。

EJB Client ツールの構成

EJB Client ツールのオプションは、 EJB リモートオブジェクトをどこから取得するかによって ([JNDI クエリー] または [Object Data Bank]) 異なります。

JNDI クエリーから EJB リモートオブジェクトを取得

JNDI Query を使用して EJB リモートオブジェクトを取得するには、 [EJB リモート オブジェクト ソース] エリアで [JNDI クエリー] を選択し、以下のパラメーターを設定します。

  • JNDI プロパティ: JNDI クエリーのリモートディレクトリのプロパティを構成できます。次のオプションが利用可能です。
    • 初期コンテキスト ファクトリ: コンテキスト ファクトリを指定します。例:org.jnp.interfaces.NamingContextFactory
    • プロバイダー URL: JNDIクエリーの場所を指定します。例:cheetah.parasoft.com[ユーザー] および [パスワード] も指定します。
    • オブジェクト名: ejb/CartHomeRemote のように、JNDI ディレクトリのオブジェクト名を指定します。このオブジェクトは、[EJB リモート オブジェクト] パネルの [クラス] フィールドで入力したクラスのインスタンスでなければなりません。 JNDI ディレクトリにバインドされた EJB オブジェクトの JNDI 名は、 J2EE サーバーの構成で確認することができます。

      [初期コンテキストファクトリ] は SOAtest のクラスパスに含まれている必要があります。

      SOAtest にクラス ファイルを追加する方法の詳細については、「システム プロパティの設定」を参照してください。
  • EJB リモート オブジェクト: EJB リモート オブジェクトのリモート メソッドを呼び出すためのプロパティを構成できます。次のオプションが利用可能です。
    • クラス: JNDI クエリーまたは Object Data Bank から返されるオブジェクトのクラスを指定します。例: com.parasoft.soatest.bookstore.cart.CartRemoteクラスが SOAtest のクラスパスに存在する場合、[メソッド] 選択ボックスには、自動的にクラスの public メソッドが表示されます。

    • メソッド: 呼び出すメソッドを指定します。 [クラス] フィールドで指定されたクラスが SOAtest のクラスパスに存在する場合、利用可能なメソッドが [メソッド] に自動的に表示されます。

    • メソッド引数: 選択されたメソッドが引数を受け取る場合、[メソッド引数] サブパネルが表示され、リモート メソッドの各引数に対して [入力タイプ] および [パラメーター入力] を指定するよう求められます。
      • Java プリミティブ型 (java.lang.String および java.util.Date) の場合、以下の入力タイプを選択できます。
        • リテラル: 入力値を文字列として指定します。たとえば、[パラメーター タイプ] が Javaプリミティブ型の int である場合、1012345 などの入力値が有効です。Java float 型の場合: 7.62105.3 など。
        • パラメータライズ: この入力タイプは、ツールから参照できるデータソースが少なくとも 1 つ存在する場合にだけ有効です。入力として使用するデータソース列を選択します。
        • スクリプト: パラメーターをカスタム メソッドの戻り値として指定します。
      • その他の Java 型の場合、以下の入力タイプを選択できます。
        • Interpreted: 表形式の入力 (CSV、Excel など) を使用して、リモート メソッドのパラメーターとして使用する Java オブジェクトをインスタンス化できます。詳細については「変換したデータ ソースの使用」を参照してください。
        • スクリプト: パラメーターをカスタム メソッドの戻り値として指定します。

Object Data Bank から EJB リモート オブジェクトを取得

Object Data Bank から EJB リモートオブジェクトを取得して後続のテストで使用できるようにするには、戻り値を Object Data Bank に格納しておく必要があります。以下の操作を行います。

  1. EJB Client ツールのノードを右クリックし、[出力の追加 ] > [オブジェクト出力 ] > [新規出力 ] > [Object Data Bank] をクリックします。
  2. Object Data Bank のコントロールパネルで、[列名] に後で値を識別するためのユニークな名前を指定します。

値を Object Data Bank に格納した後、 EJB Client ツールの [EJB リモート オブジェクト ソース] サブパネルで [Object Data Bank] を選択し、以下のパラメーターを指定します。

  • Object Data Bank プロパティ: Object Data Bank からのリモート ディレクトリのプロパティを構成できます。次のオプションが利用可能です。
    • 列名: Object Data Bank に格納された値の列名を指定します。
  • EJB リモート オブジェクト: EJB リモート オブジェクトのリモート メソッドを呼び出すためのプロパティを構成できます。次のオプションが利用可能です。
    • クラス: JNDI クエリーまたは Object Data Bank から返されるオブジェクトのクラスを指定します。例: com.parasoft.soatest.bookstore.cart.CartRemoteクラスが SOAtest のクラスパスに存在する場合、[メソッド] 選択ボックスには、自動的にクラスの public メソッドが表示されます。

    • メソッド: 呼び出すメソッドを指定します。[クラス] フィールドで指定されたクラスが SOAtest のクラスパスに存在する場合、利用可能なメソッドが [メソッド] に自動的に表示されます。

    • メソッド引数: 選択されたメソッドが引数を受け取る場合、[メソッド引数] サブパネルが表示され、リモート メソッドの各引数に対して [入力タイプ] および [パラメーター入力] を指定するよう求められます。
      • Java プリミティブ型 (java.lang.String および java.util.Date) の場合、以下の入力タイプを選択できます。
        • リテラル: 入力値を文字列として指定します。たとえば、[パラメーター タイプ] が Javaプリミティブ型の int である場合、1012345 などの入力値が有効です。Java float 型の場合: 7.62105.3 など。
        • パラメータライズ: この入力タイプは、ツールから参照できるデータソースが少なくとも 1 つ存在する場合にだけ有効です。入力として使用するデータソース列を選択します。
        • スクリプト: パラメーターをカスタム メソッドの戻り値として指定します。
      • その他の Java 型の場合、以下の入力タイプを選択できます。
        • Interpreted: 表形式の入力 (CSV、Excel など) を使用して、リモート メソッドのパラメーターとして使用する Java オブジェクトをインスタンス化できます。
        • スクリプト: パラメーターをカスタム メソッドの戻り値として指定します。

テスト実行中に使用された Data Bank 変数の参照

コンソール ビューにテスト実行中に使用された Data Bank 変数を表示できます。コンソール ビューは [ウィンドウ] メニューの [ビューの表示] > [コンソール] から表示できます。詳細については、「[コンソール] ビュー」を参照してください。

回帰コントロールの使用

EJB Client ツール テストのセットに対して回帰テスト コントロールを作成または更新するには、テストを含むテスト スイートを右クリックし、[更新] または [回帰コントロールの作成] をクリックします。データ ソースを使用している場合は、[複数コントロール] を選択します。

IBM WebSphere Application Server (WAS) 上でデプロイされた EJB の呼び出し

SOAtest に同梱されている Sun JRE を使用して WebSphere Application Server (WAS) にデプロイされた EJB を呼び出す場合、特別な構成が必要です。また、このマニュアルで説明されているその他のすべての設定が適用されます。SOAtest を構成するには、次の操作を行います:

  1. Sun Initial Context Factory (com.sun.jndi.cosnaming.CNCtxFactory) を使用します:   この設定は、EJB Client の JNDI プロパティで行う必要があります。この設定を行うには、 Sun の j2ee.jar が SOAtestのクラスパス上に存在していなければなりません。この .jar ファイルは、 Oracle Javaのサイトから入手できます。  SOAtest にクラス ファイルを追加する方法の詳細については、「システム プロパティの設定」を参照してください。

  2. EJB Client の JNDI プロパティで、corbaloc:iiop:WAS:2809 の書式でプロバイダー URL を使用します。WAS は WebSphere Application Server の場所です (例:corbaloc:iiop:bison:2809)。
  3. EJB Client の JNDI プロパティで、次の書式でオブジェクト名を指定します: ell/nodes/[node]/servers/[server]/YOUR_EJB_OBJECT_NAME (例:cell/nodes/ bisonNode01/servers/server1/ejb/BasicCalculator )

XML Encoder/Decoder ツールを EJB Client と使用

XML Encoder および XML Decoder は補完的なツールであり、Java Bean オブジェクト グラフを XML 表現に変換 (XML Encoder) または互換性のある XML 出力を Java Bean に変換 (XML Decoder)します。

XML Encoder および XML Decoder ツールは、EJB テストを作成する場合に特に便利です。 XML Encoder を使用すると、EJB ツールの Java Bean オブジェクト出力を XML 形式に変換できます。この出力をさらに XML Transformer などの別の SOAtest ツールで操作し、XML ドキュメントの必要な部分を抽出または変更することができます。 XML Decoder ツールを使用すると、変更された XML 出力を Java Bean フォーマットに戻すことができます。結果を Object Data Bank に連結し、変更された Java Bean オブジェクトを後続のテストでツールの入力として使用できます。-

EJB ツールの XML またはオブジェクト出力に容易にツールを追加できることを覚えておいてください。 EJB ツールの XML 出力は、 XML Encoder によって変換されたオブジェクト出力です。

  • No labels