Hitachi

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


2.4.3 Portable Global JNDI名の命名規則

Portable Global JNDI名には標準アプリケーション名,標準モジュール名,およびEnterprise Bean名が含まれています。これらの名前はJava EEで命名規則や使用できる文字が定義されています。

ここでは,Portable Global JNDI名に使用される標準アプリケーション名,標準モジュール名,Enterprise Bean名の命名規則,および使用できる文字について説明します。

〈この項の構成〉

(1) 標準アプリケーション名の命名規則

標準アプリケーション名は次の規則で設定されます。

表2‒11 標準アプリケーション名の命名規則

アプリケーションの前提条件

標準アプリケーション名

J2EEアプリケーション(EARファイル)

application.xmlがある

<application-name>タグがある

値がある

<application-name>タグの値※1

値が空文字※2

デフォルトの標準アプリケーション名※3

<application-name>タグがない

application.xmlがない

WARアプリケーション

(WARファイル)

cjimportwarコマンドの-nameオプションに指定がある

cjimportwarコマンドの-nameオプションの値※1

cjimportwarコマンドの-nameオプションに指定がない

デフォルトの標準アプリケーション名※3

(凡例)

−:該当なし。

注※1

値の前後の空白文字(半角スペース,タブ,改行)は除かれます。単語の間にある空白文字は除かれません。

注※2

長さが0の文字列を指します。空白文字だけで構成された値も空文字と判断されます。

注※3

デフォルトの標準アプリケーション名は,J2EEアプリケーションの形式によって異なります。デフォルトの標準アプリケーション名の命名規則を次の表に示します。

表2‒12 デフォルトの標準アプリケーション名の命名規則

アプリケーションの前提条件

デフォルトの標準アプリケーション名

J2EEアプリケーション

(EARファイル)

アーカイブ形式

EARファイルのファイル名から拡張子を除いた文字列。

ただし,ピリオド「.」がファイル名の先頭にしかない場合は拡張子を除かない。

展開ディレクトリ形式

  • application.xmlがある場合

    J2EEアプリケーション名(<display-name>タグの値)。

  • application.xmlがない場合

    アプリケーションディレクトリのディレクトリ名。

WARアプリケーション

(WARファイル)

アーカイブ形式

WARファイルのファイル名から拡張子を除いた文字列。

ただし,ピリオド「.」がファイル名の先頭にしかない場合は拡張子を除かない。

展開ディレクトリ形式

WARディレクトリのディレクトリ名。

注※

運用管理ポータルからインポートする場合は,application.xmlの<application-name>タグの値を指定してください。

指定がない場合,Portable Global JNDI名でのルックアップができません。

標準アプリケーション名に指定できる値を次に示します。

<application-name>タグで指定する標準アプリケーション名

標準アプリケーション名は,半角英数字(0〜9,A〜Z,a〜z),および次の特殊文字の場合に登録されます。

スペース( ),エクスクラメーションマーク(!),ダブルクォーテーション("),シャープ(#),ドル記号($),パーセント(%),アンパサンド(&),シングルクォーテーション('),バーレン(()()),アスタリスク(*),プラス(+),コンマ(,),ハイフン(-),ピリオド(.),コロン(:),セミコロン(;),レスザン(<),イコール(=),グレーターザン(>),クエスチョン(?),単価記号(@),ブラケット([)(]),円マーク(\),キャレット(^),アンダースコア(_),バッククォート(`),ブレイス({)(}),ストローク(|),およびチルダ(~)

ただし,次の名称は登録されません。

  • 先頭または末尾がピリオド(.)の名称

  • ピリオド(.)だけの名称

  • 文字列長が256文字以上の名称

  • 「env」と一致する名称

<display-name>タグで指定する標準アプリケーション名

標準アプリケーション名(<display-name>タグの値)は,半角英数字(0〜9,A〜Z,a〜z),プラス(+),ハイフン(-),ピリオド(.),アンダースコア(_),およびキャレット(^)の場合に登録されます。

ただし,次の名称は登録されません。

  • 先頭または末尾がピリオド(.)の名称

  • ピリオド(.)だけの名称

  • 文字列長が1文字未満の名称

  • 文字列長が256文字以上の名称

  • 「env」と一致する名称

登録されない名称の例

foo/bar,.foo,.foobar.,env

標準アプリケーション名が登録できない名称の場合,アプリケーション開始時にKDJE47710-Wが出力され,アプリケーションの開始処理は続行されます。ただし,そのアプリケーションに含まれるすべてのオブジェクトに対してPortable Global JNDI名の登録はされないため,Portable Global JNDI名でのルックアップはできません。Portable Global JNDI名でのルックアップをする場合は,必要に応じて,DD,EARファイルのファイル名,またはアプリケーションディレクトリのディレクトリ名を命名規則に従って変更してください。

(2) 標準モジュール名の命名規則

標準モジュール名は次の規則で設定されます。

表2‒13 標準モジュール名の命名規則

モジュールの前提条件

標準モジュール名

EJB-JARモジュール(EJB-JARファイル)

ejb-jar.xml

がある

<module-name>タグがある

値がある

<module-name>タグの値※1

値が空文字※2

デフォルトの標準モジュール名※3

<module-name>タグがない

ejb-jar.xml

がない

Webモジュール(WARファイル)

web.xmlがある

<module-name>タグがある

値がある

<module-name>タグの値※1

値が空文字※2

デフォルトの標準モジュール名※3

<module-name>タグがない

web.xmlがない

リソースアダプタモジュール(RARファイル)

デフォルトの標準モジュール名※3

(凡例)

−:該当なし。

注※1

値の前後の空白文字(半角スペース,タブ,改行)は除かれます。単語の間にある空白文字は除かれません。

注※2

長さが0の文字列を指します。空白文字だけで構成された値も空文字と判断されます。

注※3

デフォルトの標準モジュール名は,モジュールおよびJ2EEアプリケーションの形式によって異なります。デフォルトの標準モジュール名の命名規則を次の表に示します。

表2‒14 デフォルトの標準モジュール名の命名規則

モジュール

J2EEアプリケーションの形式

デフォルトの標準モジュール名

EJB-JARモジュール(EJB-JARファイル)

アーカイブ形式

アプリケーションパッケージのルートディレクトリからEJB-JARファイルまでの相対パスから拡張子を除いた文字列。

ただし,ピリオド「.」がEJB-JARファイル名の先頭にしかない場合は拡張子を除かない。

パス区切り文字が「\」の場合は「/」に変換する。

展開ディレクトリ形式

  • application.xmlがある場合

    application.xmlの<module>/<ejb>タグで指定したパス。

  • application.xmlがない場合

    アプリケーションディレクトリからEJB-JARディレクトリまでの相対パスから,末尾の「_jar」を除いた文字列。

    パス区切り文字が「\」の場合は「/」に変換する。

Webモジュール(WARファイル)

アーカイブ形式

アプリケーションパッケージのルートディレクトリからWARファイルまでの相対パスから,拡張子を除いた文字列。

ただし,ピリオド「.」がWARファイル名の先頭にしかない場合は拡張子を除かない。

パス区切り文字が「\」の場合は「/」に変換する。

展開ディレクトリ形式

  • application.xmlがある場合

    application.xmlの<module>/<web>/<web-uri>タグで指定したパス。

  • application.xmlがない場合

    アプリケーションディレクトリからWARディレクトリまでの相対パスから,末尾の「_war」を除いた文字列。

    パス区切り文字が(\)の場合は(/)に変換する。

リソースアダプタモジュール

アーカイブ形式

アプリケーションパッケージのルートディレクトリからRARファイルまでの相対パスから,拡張子を除いた文字列。

ただし,ピリオド(.)がRARファイル名の先頭にしかない場合は拡張子を除かない。

パス区切り文字が(\)の場合は(/)に変換する。

なお,標準モジュール名(<module-name>タグの値)は,半角英数字(0〜9,A〜Z,a〜z),および次の特殊文字の場合に登録されます。

スペース( ),エクスクラメーションマーク(!),ダブルクォーテーション("),シャープ(#),ドル記号($),パーセント(%),アンパサンド(&),シングルクォーテーション('),バーレン(()()),アスタリスク(*),プラス(+),コンマ(,),ハイフン(-),ピリオド(.),区切り文字としてのスラッシュ(/),コロン(:),セミコロン(;),レスザン(<),イコール(=),グレーターザン(>),クエスチョン(?),単価記号(@),ブラケット([)(]),円マーク(\),キャレット(^),アンダースコア(_),バッククォート(`),ブレイス({)(}),ストローク(|),チルダ(~)

ただし,次の名称は登録されません。

登録されない名称の例

/foo,/foobar/,/,foo//bar,bar.,.foobar.,foo/.bar,AppName,AppName/foo,env/foo/bar

標準モジュール名が登録できない名称の場合,アプリケーション開始時にモジュールごとにKDJE47711-Wが出力され,アプリケーションの開始処理は続行されます。ただし,そのモジュールに含まれるすべてのオブジェクトに対してPortable Global JNDI名での登録はされないため,Portable Global JNDI名でのルックアップはできません。Portable Global JNDI名でのルックアップをする場合は,必要に応じて,DD,アプリケーションのディレクトリ名などを命名規則に従って変更してください。

(3) Enterprise Bean名の命名規則

Enterprise Bean名には,半角英数字(0〜9,A〜Z,a〜z),および次の特殊文字の場合に登録されます。

スペース( ),エクスクラメーションマーク(!),ダブルクォーテーション("),シャープ(#),ドル記号($),パーセント(%),アンパサンド(&),シングルクォーテーション('),バーレン(()()),アスタリスク(*),プラス(+),コンマ(,),ハイフン(-),ピリオド(.),コロン(:),セミコロン(;),レスザン(<),イコール(=),グレーターザン(>),クエスチョン(?),単価記号(@),ブラケット([)(]),円マーク(\),キャレット(^),アンダースコア(_),バッククォート(`),ブレイス({)(}),ストローク(|),チルダ(~)

ただし,次の名称は登録されません。

登録されない名称の例

.foo,.foobar.,ModuleName,env

Enterprise Bean名が登録できない名称の場合,アプリケーション開始時にEnterprise BeanごとにKDJE47712-Wが出力され,アプリケーションの開始処理は続行されます。ただし,そのEnterprise Beanに含まれるすべてのオブジェクトに対してPortable Global JNDI名での登録はされません。なお,Enterprise Bean名が登録できない名称の場合,Portable Global JNDI名でのルックアップはできませんが,それ以外のアプリケーションの機能は従来どおり動作します。

また,指定できる文字列長については,Enterprise Beanのインタフェース(ホームインタフェースまたはビジネスインタフェース)ごとにもチェックされます。例えば,次の文字列長が256文字以上の場合,インタフェースごとにKDJE47713-Wが出力され,そのインタフェース名を指定した形式のPortable Global JNDI名での登録はされません。

Enterprise Bean名の長さ+インタフェースのクラス名の長さ+1

注※ パッケージ名を含む完全修飾クラス名

なお,EJB 3.1では,インタフェースが省略されている場合は,インタフェースのクラス名の代わりにEnterprise Beanのクラス名が適用されます。

(4) 標準アプリケーション名または標準モジュール名が重複した場合の動作

アプリケーションサーバでは,アプリケーション開始時に,すでに同じ標準アプリケーション名が名前空間に登録されていた場合,KDJE47720-Wが出力され,名前空間に登録されません。これと同様に,同一アプリケーション内ですでに同じ標準モジュール名が名前空間に登録されていた場合,次のメッセージが出力され,名前空間に登録されません。ただし,アプリケーションの開始処理は続行されます。

なお,アプリケーションサーバでは,次の順番でモジュールが登録されます。

  1. リソースアダプタ

  2. EJB-JAR

  3. Webアプリケーション

登録済みの標準アプリケーション名や標準モジュール名と完全に一致していなくても,スラッシュ(/)で区切られた階層の単位で,登録済みのオブジェクトと名称が一致した場合は,重複していると判断されることがあります。次に例を示します。

例1

次の順番でアプリケーションを開始した場合,標準アプリケーション名が重複していると判断されます。

  1. 標準アプリケーション名が「foo/bar」のアプリケーションを開始

  2. 標準アプリケーション名が「foo」のアプリケーションを開始

例2

次の順番でアプリケーションを開始した場合,標準アプリケーション名が重複していると判断されます。

  1. 標準アプリケーション名が「foo」で,標準モジュール名が「bar」のアプリケーションを開始

  2. 標準アプリケーション名が「foo/bar」のアプリケーションを開始