Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第3部 EJB編> 第28章 Bean共通編> 28.1 クライアントアプリケーションを作成する

28.1.1 EJBアプリケーションのlookup処理について

 EJBアプリケーション(Homeインタフェース)はlookup処理することで参照できます。

 Apworksでクライアントアプリケーションの開発を行った場合、lookup処理のひな型をコンポーネントデザイナの入力テンプレート、またはApdesignerのテンプレートから入力できます(CMP1.1の場合)。コンポーネントデザイナまたはApdesigner、入力テンプレートおよびテンプレートの使用方法についての詳細は、Apworksの"Apdesigner プログラマーズガイド"または"コンポーネントデザイナ ユーザーズガイド"(注:Plus Developerでは提供していません)を参照してください。

 EJBアプリケーションのlookupの方法は以下の2種類です。

 クライアントアプリケーションの種別(指定するJNDIのサービスプロバイダ)によって、lookupで指定できる形式が異なります。また、名前変換機能の使用可否についても違います。

 クライアントアプリケーションの種別については、”クライアントアプリケーションの実行”を参照してください。

 J2EEアプリケーションクライアントの名前変換ファイルを使用する場合は、“名前変換ファイルの詳細設定”を参照してください。サーブレット/JSPの名前変換ファイルを使用する場合は、“名前変換定義ファイル”を参照してください。

 以下に、クライアント種別ごとにlookupで指定できる形式と、名前変換機能の使用可否について示します。

クライアントアプリケーションの種別

EJBアプリケーションを直接指定

Enterprise Bean Environment形式で指定

名前変換機能の使用

EJBクライアントを使用したアプリケーション

×

J2EEアプリケーションクライアント

サーブレット/JSP(※)

×

※詳細は、“JNDI SPの運用”を参照してください。

注意事項

 J2EEアプリケーションクライアントとサーブレット/JSPでEJBアプリケーションをlookupする場合は、deployment descriptorにejb-refタグを設定してください。

 J2EEアプリケーションクライアントのdeployment descriptorの設定方法については、“Deployment descriptorファイルの詳細設定”を参照してください。

 サーブレット/JSPのdeployment descriptorの設定方法については、“Webアプリケーション環境定義ファイル(deployment descriptor)”を参照してください。

■ EJBアプリケーションを直接指定する

 EJBアプリケーションを直接指定する場合、EJBアプリケーションのlookup処は、以下の形式で行ってください。

---------------------------------------------------------------------------------------
    // InitialContext獲得
    javax.naming.Context ic = new javax.naming.InitialContext( ); (1)
    // lookup
    java.lang.Object Obj = (java.lang.Object)ic.lookup("SampleBean"); (2)
    // homeのnarrow()
    SampleHome h = (SampleHome)javax.rmi.PortableRemoteObject.narrow( Obj, SampleHome.class); (3)
---------------------------------------------------------------------------------------

(1) lookupするためのContextを作成します。このとおりに記述してください。

(2) lookupを行います。引数にEJBアプリケーション名を指定してください。lookupに失敗した場合、javax.naming.NameNotFoundException例外が発生します。失敗の理由は当例外の詳細メッセージとして通知されます。

lookupに失敗したときの対処方法については、“トラブルシューティング集”の“EJBサービス使用時の異常”を参照してください。

(3) lookupしたオブジェクトをnarrowします。javax.rmi.PortableRemoteObject.narrowを発行してください。

■ Enterprise Bean Environment形式のlookup処

 EJBアプリケーションのlookupは、上記の形式以外にEnterprise Bean Environment形式でもできます。

 Enterprise Bean Environment形式のlookup処理は以下の形式で行ってください。

 参照するEJBアプリケーション名を以下の記述形式どおりに記述します。

--------------------------------------------------------------------------------------------------
    // InitialContext獲得
    javax.naming.Context ic = new javax.naming.InitialContext(); (1)
    // lookup
    java.lang.Object Obj = (java.lang.Object)ic.lookup("java:comp/env/ejb/SampleBean"); (2)
    // homeのnarrow()
    SampleHome h = (SampleHome)javax.rmi.PortableRemoteObject.narrow(Obj, SampleHome.class);(3)
--------------------------------------------------------------------------------------------------

(1) lookupするためのContextを作成します。このとおりに記述してください。

(2) 引数にEnterprise Bean Environment で規定された形式("java:comp/env/ejb/xxx")を指定してください。

“xxx”(例では“SampleBean”)にはEJBアプリケーション名を指定してください。

(3) lookupしたオブジェクトをnarrowします。javax.rmi.PortableRemoteObject.narrowを発行してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2006