Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

8.3.5 クライアントからの検索

ここでは,別名を付けたEnterprise BeanまたはJ2EEリソースをクライアントから検索する方法について説明します。

<この項の構成>
(1) クライアントのソースと検索先オブジェクトの設定の関係
(2) Enterprise Beanの検索
(3) J2EEリソースの検索

(1) クライアントのソースと検索先オブジェクトの設定の関係

別名を付けたEnterprise BeanまたはJ2EEリソースを検索する場合のクライアントのソースでの指定方法と,検索先オブジェクトでの設定方法について説明します。

クライアントのソースには,ルックアップする名称として,検索先のオブジェクトの別名を指定します。検索先のオブジェクトには,アノテーションまたは属性ファイルを使用して,対応する別名を設定します。

検索元のソースの記述と,検索先オブジェクトの設定の関係を次の図に示します。

図8-6 クライアントのソースと検索先オブジェクトの設定の関係

[図データ]

(2) Enterprise Beanの検索

別名を使用してEnterprise Beanを検索する場合の,クライアントのコーディング例を次に示します。この例では,「MyCart」という別名を設定したEJBホームオブジェクトを検索します。

  :
javax.naming.Context ctx = new javax.naming.InitialContext();
Object obj = ctx.lookup("MyCart");
SampleHome home = 
(SampleHome)javax.rmi.PortableRemoteObject.narrow(obj, SampleHome.class);
Sample mybean = home.create();   //リモートオブジェクトの生成
String name = mybean.ping();     //ビジネスメソッドの実行
  :

EJBホームオブジェクト取得後の操作は,別名を使用しないで取得したEJBホームオブジェクトに対する操作と同じです。

EJBホームオブジェクトのリファレンスをルックアップする場合の,ルックアップおよびオブジェクト取得の流れを次の図に示します。

図8-7 EJBホームオブジェクトのリファレンスのルックアップとオブジェクト取得の流れ

[図データ]

ポイント
J2EEアプリケーション外からテストモードで実行されているEnterprise Beanをルックアップする場合,テストモード用の名前空間を意識してルックアップする必要があります。この図の例では,通常モードで実行されるEnterprise Beanを「MyCart」でルックアップするのに対して,同じEnterprise Beanがテストモードで実行される場合は,「$HITACHI_TEST/MyCart」でルックアップします。
テストモードでのアプリケーションの動作については,「19.7 J2EEアプリケーションのテスト機能」を参照してください。

(3) J2EEリソースの検索

別名を使用してJ2EEリソースを検索する場合の,クライアントのコーディング例を次に示します。この例では,「jdbc/DBOpt」という別名を設定したJ2EEリソースを検索します。

  
Context initCtx = new InitialContext();
DataSource ds = (DataSource) initCtx.lookup("jdbc/DBOpt");
  

なお,J2EEリソースのオブジェクト取得後の操作は,別名を使用しないで取得したオブジェクトに対する操作と同じです。

注意
EJBクライアントアプリケーションからは,J2EEリソースを検索できません。検索した場合は,javax.naming.NameNotFoundException例外が発生します。