Java EEで定義されているJNDI名前空間の種類とルックアップできる範囲について説明します。
JNDI名前空間の範囲を次の図に示します。
図2-4 JNDI名前空間の範囲
![[図データ]](figure/zu021500.gif)
- java:global
すべてのJ2EEアプリケーションで共有される名前空間です。アプリケーションサーバでは,同じCORBAネーミングサービスを利用するすべてのJ2EEサーバまたはEJBクライアントアプリケーションで共有されます。
- java:app
J2EEアプリケーション内で共有される名前空間です。一つのJ2EEアプリケーション内のすべてのコンポーネント(Enterprise Bean,サーブレット,JSP,フィルタ,およびリソースアダプタ)で共有されます。
- java:module
各種モジュール(EJB-JAR,Webアプリケーションまたはリソースアダプタ)内で共有される名前空間です。一つのモジュール内のすべてのコンポーネント(Enterprise Bean,サーブレット,JSP,フィルタ,およびリソースアダプタ)で共有されます。
- java:comp
各種コンポーネント(Enterprise Bean,サーブレット,JSP,フィルタ,またはリソースアダプタ)内で共有される名前空間です。一つのコンポーネント内でだけ共有されます。ただし,Webアプリケーションの場合は,Webアプリケーション内のすべてのサーブレットまたはJSPで共有されます。
ルックアップ対象のコンポーネントがルックアップ元と同じプロセス,アプリケーション,モジュールまたはコンポーネントに含まれているかによって,使用できる名前空間が異なります。ルックアップするコンポーネントとの関係と,名前空間ごとのルックアップ可否を次の表に示します。
表2-9 名前空間ごとのルックアップ可否
項番 | ルックアップするコンポーネントとの関係 | ルックアップする名前空間 |
---|
サーバ(プロセス) | アプリケーション | モジュール | コンポーネント | java:global | java:app | java:module | java:comp |
---|
1 | 同じ | 同じ | 同じ | 同じ | ○ | ○ | ○ | ○ |
2 | 同じ | 同じ | 同じ | 異なる | ○ | ○ | ○ | △※1 |
3 | 同じ | 同じ | 異なる | 異なる | ○ | ○ | × | × |
4 | 同じ | 異なる | 異なる | 異なる | ○ | × | × | × |
5 | 異なる※2 | 異なる | 異なる | 異なる | ○※3 | × | × | × |
- (凡例)
- ○:ルックアップできる。
- △:コンポーネントの種類によってルックアップできる。
- ×:ルックアップできない。
- 注※1
- Webアプリケーション内のコンポーネント(サーブレット,JSPまたはフィルタ)の場合,ルックアップできます。
- 注※2
- サーバ(プロセス)は異なるが,同一のCORBAネーミングサービスを利用している場合を指します。EJBクライアントアプリケーションからJ2EEサーバ内のJ2EEアプリケーションをルックアップする場合を含みます。
- 注※3
- 自動的にバインドされるEJBのリファレンスだけルックアップできます(アプリケーションサーバ独自の仕様)。