2.6.4 クライアントからの検索
ここでは,別名を付けたEnterprise BeanまたはJ2EEリソースをクライアントから検索する方法について説明します。
(1) クライアントのソースと検索先オブジェクトの設定の関係
別名を付けたEnterprise BeanまたはJ2EEリソースを検索する場合のクライアントのソースでの指定方法と,検索先オブジェクトでの設定方法について説明します。
クライアントのソースには,ルックアップする名称として,検索先のオブジェクトの別名を指定します。検索先のオブジェクトには,アノテーションまたは属性ファイルを使用して,対応する別名を設定します。
検索元のソースの記述と,検索先オブジェクトの設定の関係を次の図に示します。
(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ホームオブジェクトのリファレンスをルックアップする場合の,ルックアップおよびオブジェクト取得の流れを次の図に示します。
(3) J2EEリソースの検索
別名を使用してJ2EEリソースを検索する場合の,クライアントのコーディング例を次に示します。この例では,「jdbc/DBOpt」という別名を設定したJ2EEリソースを検索します。
Context initCtx = new InitialContext(); DataSource ds = (DataSource) initCtx.lookup("jdbc/DBOpt");
なお,J2EEリソースのオブジェクト取得後の操作は,別名を使用しないで取得したオブジェクトに対する操作と同じです。
- 注意事項
-
EJBクライアントアプリケーションからは,J2EEリソースを検索できません。検索した場合は,javax.naming.NameNotFoundException例外が発生します。