2.4.2 自動的にバインドされるオブジェクト
アプリケーションサーバでは,標準アプリケーション名,標準モジュール名およびEJBのリファレンスが,Java EEで定義されている名称に自動的にバインドされます。なお,アプリケーションサーバでは標準アプリケーション名,および標準モジュール名を次のように定義しています。
-
標準アプリケーション名
Java EE 6で導入されたJ2EEアプリケーションを一意に識別する名称です。アプリケーションサーバでは,application.xmlの<display-name>に指定する「J2EEアプリケーション名」または「アプリケーション表示名」とは区別して,「標準アプリケーション名」と呼びます。
-
標準モジュール名
Java EE 6で導入されたJ2EEアプリケーション内の各種モジュール(EJB-JAR,Webアプリケーションまたはリソースアダプタ)を一意に識別する名称です。アプリケーションサーバでは,EJB-JARファイルやWARファイルのファイル名を指す「モジュール名」と区別して,「標準モジュール名」と呼びます。
自動的にバインドされるオブジェクトと名称を次の表に示します。
バインドされるオブジェクト |
バインドされる名称 |
|
---|---|---|
標準アプリケーション名(java.lang.String型) |
java:app/AppName※1 |
|
標準モジュール名(java.lang.String型) |
java:module/ModuleName※1 |
|
EJBのリファレンス※2 |
Session Beanのホームオブジェクト |
java:global[/<標準アプリケーション名>]/<標準モジュール名>/<Enterprise Bean名>[!<完全修飾クラス名>] |
java:app/<標準モジュール名>/<Enterprise Bean名>[!<完全修飾クラス名>] |
||
java:module/<Enterprise Bean名>[!<完全修飾クラス名>] |
||
Session Beanのビジネスインタフェース |
java:global[/<標準アプリケーション名>]/<標準モジュール名>/<Enterprise Bean名>[!<完全修飾クラス名>] |
|
java:app/<標準モジュール名>/<Enterprise Bean名>[!<完全修飾クラス名>] |
||
java:module/<Enterprise Bean名>[!<完全修飾クラス名>] |
- 注※1
-
EJB-JARまたはWebアプリケーションからの場合だけルックアップできます。
- 注※2
-
EJB 3.1仕様では,一つのEnterprise Beanに対してEJBのリファレンス(ホームオブジェクトやビジネスインタフェース)が一つの場合に,完全修飾クラス名を省略したクラス名省略書式でルックアップできます。
さらに,アプリケーションサーバでは,リファレンスが複数ある場合でも,次の優先順位で最初に登録されたものは,クラス名省略書式でルックアップできます。
1. リモートホームオブジェクト
2. ローカルホームオブジェクト
3. ローカルビジネスインタフェース(ビジネスインタフェース省略時を含む)
4. リモートビジネスインタフェース
ただし,リファレンスが複数ある場合のクラス名省略書式に関する仕様はJava EEで規定されていないため,クラス名省略書式でのルックアップは推奨しません。
HITACHI_EJBから始まる名称でルックアップできるオブジェクトがアプリケーション内にある場合は,Portable Global JNDI名でもルックアップできます。
なお,アプリケーションの開始時,Portable Global JNDI名は,バインドされたEJBリファレンスごとにメッセージKDJE47701-Iに出力されます。Enterprise Beanのクラス名を省略した書式やアプリケーション名を省略した書式が有効な場合は,ルックアップできるすべての書式がコンマと空白区切り(, )で列挙されます。