16.4.4 application.xmlがない場合のモジュールの決定規則
J2EEアプリケーションにapplication.xmlが存在しない場合のモジュールの決定規則について説明します。J2EEアプリケーションにapplication.xmlが存在しない場合は,アプリケーションの形式ごとにライブラリJARの決定規則が異なります。アプリケーションの形式ごとにモジュールの決定規則を説明します。
- 〈この項の構成〉
(1) アーカイブ形式または-dオプションを指定してインポートした展開ディレクトリ形式のアプリケーションの場合
application.xmlが含まれていないアプリケーションを,アーカイブ形式でインポートした場合,または展開ディレクトリ形式(cjimportappコマンドに-dオプションを指定)でインポートした場合,Java EE仕様に従ってモジュールが決定されます。モジュールが決定される順番を示します。
-
ファイルの拡張子が.warのファイルすべてを,Webモジュールと見なします。
-
ファイルの拡張子が.rarのファイルすべてをリソースアダプタと見なします。
-
libディレクトリをライブラリディレクトリと見なします。
-
libディレクトリ以下を除き,ファイルの拡張子が.jarのファイルについては次のように決定します。
-
META-INF/ejb-jar.xmlファイルを含む,またはEJBコンポーネントアノテーションを含むJARファイルはEJBモジュールと見なします。
-
「hitachi-runtime.jar」を除いたJ2EEアプリケーションのルート直下のJARファイルをライブラリJARと見なします。
-
これらのルールに該当しないすべてのファイルは無視されます。
- ポイント
-
Webモジュールのコンテキストルート
Webモジュールのコンテキストルートは,アプリケーションパッケージのルートからWARファイルへの相対パス名から,拡張子である.warを除いたものになります。
このため,application.xmlを省略する場合,WARファイルへのパスのディレクトリ名,およびWARファイル名は,URI(RFC3986)で使用できる文字で指定してください。
Webモジュールの構成とコンテキストルートの例を次の図に示します。
図16‒10 Webモジュールの構成とコンテキストルートの例(アーカイブ形式または-dオプションを指定してインポートした展開ディレクトリ形式のアプリケーションの場合) なお,WARファイルへのパス名によっては,複数のWARファイルに対するコンテキストルートが重複することがあります。例えば,「sub/.war」という名称のWARファイルと,「sub.war」という名称のWARファイルがある場合,どちらのコンテキストルートも「sub」になります。
(2) -aオプションを指定してインポートした展開ディレクトリ形式のアプリケーションの場合
application.xmlが含まれていないアプリケーションを,展開ディレクトリ形式(cjimportappコマンドに-aオプションを指定)でインポートした場合,次の規則に従って順番にWARディレクトリ,EJB-JARディレクトリ,モジュールが決定されます。次に,モジュールが決定する順番を記します。
-
アプリケーションディレクトリのルート以下の階層に「_war」で終わるディレクトリがある場合,そのディレクトリをWARディレクトリと見なします。ただし,次の条件に当てはまる場合は,WARディレクトリとは見なしません。
-
WARディレクトリ以下のディレクトリ
-
EJB-JARディレクトリ以下のディレクトリ
-
libディレクトリ
-
-
アプリケーションディレクトリのルート以下の階層に「_jar」で終わるディレクトリがある場合,そのディレクトリをEJB-JARディレクトリと見なします。ただし,次の条件に当てはまる場合は,EJB-JARディレクトリとは見なしません。
-
WARディレクトリ以下のディレクトリ
-
EJB-JARディレクトリ以下のディレクトリ
-
libディレクトリおよびlibディレクトリ以下のディレクトリ
-
-
WARディレクトリ以下,およびEJB-JARディレクトリ以下のファイルを除いて,ファイル名の拡張子が.rarのファイルすべてをリソースアダプタと見なします。
-
libディレクトリをライブラリディレクトリと見なします。
-
WARディレクトリ以下,EJB-JARディレクトリ以下,およびlibディレクトリ以下のファイルを除き,ファイル名の拡張子が.jarのファイルについては「hitachi-runtime.jar」を除いたJ2EEアプリケーションのルート直下のJARファイルをライブラリJARと見なします。
これらのルールに該当しないすべてのファイルは無視されます。
- ポイント
-
Webモジュールのコンテキストルート
Webモジュールのコンテキストルートは,アプリケーションディレクトリからWARディレクトリへの相対パス名の後ろから,「_war」を除いたものになります。
このため,application.xmlを省略する場合,WARディレクトリへのパスのディレクトリ名,およびWARディレクトリ名は,URI(RFC3986)で使用できる文字で指定してください。
Webモジュールの構成とコンテキストルートの例を次の図に示します。
図16‒11 Webモジュールの構成とコンテキストルートの例(-aオプションを指定してインポートした展開ディレクトリ形式のアプリケーションの場合) なお,WARディレクトリへのパス名によっては,複数のWARディレクトリに対するコンテキストルートが重複することがあります。例えば,「sub/_war」という名称のWARディレクトリと,「sub_war」という名称のWARディレクトリがある場合,どちらのコンテキストルートも「sub」になります。
(3) EARファイル内またはアプリケーションディレクトリのライブラリディレクトリの扱われ方
ここでは,application.xmlがない場合のEARファイル内またはアプリケーションディレクトリのライブラリディレクトリの扱われ方について示します。ライブラリディレクトリの扱われ方は,EARファイル内またはアプリケーションディレクトリに,libというディレクトリまたはファイルがある場合と,どちらもない場合で異なります。
EARファイル内のlibまたはアプリケーションディレクトリ内のlib |
扱われ方 |
---|---|
ディレクトリがある場合 |
libがライブラリディレクトリとして扱われます。 |
ファイルがある場合 |
インポート時にKDJE42360-Eが出力され,エラーになります。 |
ディレクトリまたはファイルがない場合 |
ライブラリディレクトリはないものとして動作します。 (ほかの個所にあるlibは,ライブラリディレクトリとして扱われません)。 |