Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

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

2.3.2 JNDI名前空間のマッピングとルックアップ

ここでは,JNDI名前空間のマッピングの仕組みと,ルックアップでの指定する名称とJNDI名前空間およびDDの関係について説明します。

<この項の構成>
(1) Enterprise Beanを参照する仕組みと使い方(ejb-ref)
(2) リソースを参照する仕組みと使い方(resource-ref)

(1) Enterprise Beanを参照する仕組みと使い方(ejb-ref)

J2EEサーバ内で実行するアプリケーションでは,Enterprise Beanを呼び出すために,Enterprise Bean参照の名前解決が必要です。正確には,Enterprise Beanに対応するEJBホームインタフェース,EJBローカルホームインタフェース,ビジネスインタフェースなどの名前解決をします。

EJBホームインタフェース,またはビジネスインタフェースの名前解決をするためには,次の2種類の作業が必要です。

マッピングの仕組みは,参照側のアプリケーションと参照先のアプリケーションが同じJ2EEアプリケーションか,別のJ2EEアプリケーションかによって異なります。次に,EJBホームインタフェースの名前解決の例として,別のJ2EEアプリケーションのEnterprise Beanを参照する場合と,同じJ2EEアプリケーション内のEnterprise Beanを参照する場合の例を示します。

(a) 別のJ2EEアプリケーションのEnterprise Beanを参照する場合

J2EEアプリケーションから別のJ2EEアプリケーションに含まれるEnterprise Beanを参照する例を,次の図に示します。

図2-1 J2EEアプリケーションから別のJ2EEアプリケーションに含まれるEnterprise Beanを参照する例

[図データ]

java:comp/envを使用する場合,参照側のプログラムのlookupに指定するjava:comp/env下の参照名と実際にJNDI名前空間に登録されているlookup名は,デフォルトで対応づけられます(linked-to)。なお,lookup名をJNDI名前空間に登録されている名称と異なる名称にする場合は,サーバ管理コマンドでカスタマイズする必要があります。図の場合は,PetShopEBをejb/PetShopBeanとして呼び出すようにカスタマイズします。

ユーザ指定名前空間機能を使用する場合,参照側のプログラムのlookupに別名を指定できます。<ejb-ref>の定義は不要です。

(b) 同じJ2EEアプリケーション内のEnterprise Beanを参照する場合

J2EEアプリケーションから同じJ2EEアプリケーションに含まれるEnterprise Beanを参照する例を,次の図に示します。

図2-2 同じJ2EEアプリケーションに含まれるEnterprise Beanを参照する例

[図データ]

同じアプリケーション内のEnterprise Beanを呼び出す場合は,lookup名による参照の解決ではなく,<ejb-ref-name>とejb-nameを結び付けて解決します(linked-to)。なお,同一のJ2EEアプリケーションの場合,参照に必要な情報はアプリケーション開発時に判明しているので,DDの<ejb-link>タグに直接ejb-nameを書き込んでおくこともできます。

(2) リソースを参照する仕組みと使い方(resource-ref)

J2EEサーバ内で実行するアプリケーションでリソースアダプタを利用する場合,lookupによるリソース参照の名前解決が必要です。正確には,リソースマネジャへのコネクションを作成するファクトリの名前解決をします。

リソースマネジャへのコネクションを作成するファクトリの名前解決をするためには,次の2種類の作業が必要です。

次にDB Connector経由でデータベースにアクセスする場合の例を示します。

図2-3 DB Connector経由でデータベースにアクセスする場合の例

[図データ]

この例では,リソースの参照名称とリソースの表示名称を結び付けています。