18.4.2 アプリケーションディレクトリの構成
アプリケーションディレクトリは,展開ディレクトリ形式のJ2EEアプリケーションのルートディレクトリです。展開ディレクトリ形式のJ2EEアプリケーションを作成する場合には,アプリケーションディレクトリを作成し,アプリケーションディレクトリ下に,EJB-JAR,Webアプリケーションなどの構成要素を格納します。アプリケーションディレクトリの構成を次の表に示します。
ディレクトリ |
ディレクトリの説明 |
|||
---|---|---|---|---|
<アプリケーションディレクトリ> |
展開ディレクトリ形式のJ2EEアプリケーションのルートディレクトリです。アプリケーションディレクトリの名称は任意です。 |
|||
META-INF |
J2EEアプリケーションのDDおよびcosminexus.xmlの格納ディレクトリです。このディレクトリの直下に,application.xmlおよびcosminexus.xmlが格納されます。 |
|||
<EJB-JARディレクトリ> |
EJBアプリケーションのルートディレクトリです。 |
|||
META-INF |
EJB-JARのDDの格納ディレクトリです。このディレクトリの直下に,ejb-jar.xmlが格納されます。 |
|||
<パッケージ名> |
EJB-JARのクラスファイルやプロパティファイルを格納するディレクトリです。
|
|||
<WARディレクトリ> |
Webアプリケーションのルートディレクトリです。 なお,このディレクトリの直下に,JSPファイルが格納されます。
|
|||
WEB-INF |
WebアプリケーションのDDの格納ディレクトリです。このディレクトリの直下に,web.xmlが格納されます。 |
|||
classes |
サーブレットクラスファイルやプロパティファイルを格納するディレクトリです。
|
|||
lib |
タグライブラリなどのJARファイルを格納するディレクトリです。
|
|||
RARファイル※ |
J2EEアプリケーションで使用するリソースアダプタです。 |
|||
<ライブラリディレクトリ> |
ライブラリJARを格納するディレクトリです。アプリケーションのバージョンがJava EE 5以降の場合,このディレクトリの直下にライブラリJARが格納されます。 |
アプリケーションディレクトリの留意事項を次に示します。
-
<EJB-JARディレクトリ>,<WARディレクトリ>,およびRARファイルを配置する場合の留意点をapplication.xmlがある場合とapplication.xmlがない場合とに分けて説明します。
-
application.xmlがある場合には,それぞれapplication.xmlの<module>タグ以下に記述した相対パスに従って作成してください。また,EJB-JARディレクトリとWARディレクトリの名称もapplication.xmlの記述と合わせてください。application.xmlの<module>タグ以下に記述したEAR上の相対パス(EJB-JARファイル名,またはWARファイル名)から拡張子(「.jar」または「.war」)を除いたものが,EJB-JARディレクトリとWARディレクトリの名称になります。
-
application.xmlがない場合には,ディレクトリ名の最後は「_jar」または「_war」となります。
-
-
application.xmlの<module>/<ejb>,<module>/<web>,<module>/<connector>タグの値に(../)を含む相対パスは記述できません。記述した場合エラーになります。
-
application.xmlの<module>タグ以下で,EJB-JARとWARのモジュールが,「.jar」または「.war」以外の拡張子で宣言されていた場合,アプリケーションのインポートに失敗します。
-
ライブラリJARの扱われ方は,アプリケーションのバージョンによって異なります。
-
アプリケーションのバージョンがJ2EE1.4以前の場合
アプリケーションディレクトリ以下のJARファイルのうち,application.xmlの<module>タグ以下で定義していない,拡張子が小文字(.jar)のJARファイルは,ライブラリJARとして扱われます。
-
アプリケーションのバージョンがJava EE 5以降の場合
サブディレクトリを含まないライブラリディレクトリの直下,またはアプリケーションディレクトリの直下に置かれていて,application.xmlの<module>タグに定義されていないJARファイルがライブラリJARとして扱われます。ライブラリディレクトリには(../)を含むパスの記述はできません。記述した場合はアプリケーションをインポートするタイミングでエラーになります。
-
-
アプリケーションディレクトリにないJARを指定する場合は,参照ライブラリを使用します。
-
アプリケーションディレクトリを変更する場合には,「(2) アプリケーションディレクトリの変更」に示す規則に従ってください。
(1) アプリケーションディレクトリの作成例
アプリケーションディレクトリの作成例を次に示します。
ここでは,EJB-JARディレクトリが「subdir/converter」,WARディレクトリが「MyWebApp」,RARファイルが「rardir/DBConnector_DABJ_CP.rar」の場合のアプリケーションディレクトリの構成例,application.xmlの記述例を示します。
-
アプリケーションディレクトリの構成例
この例でのアプリケーションディレクトリの構成を次に示します。
-
application.xmlの記述例
この例でのapplication.xmlを次に示します。
<?xml version="1.0" encoding="Shift_JIS" ?> <application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"> <display-name>converter</display-name> <module> <ejb>subdir/converter.jar</ejb> </module> <module> <web> <web-uri>MyWebApp.war</web-uri> <context-root>/</context-root> </web> </module> <module> <connector>rardir/DBConnector_DABJ_CP.rar</connector> </module> </application>
(2) アプリケーションディレクトリの変更
アプリケーションディレクトリを変更する場合,変更の対象となるディレクトリやファイルの種類と操作の内容によって,変更できなかったり,変更後にアプリケーションの再インポートが必要になったりします。次に,アプリケーションディレクトリを変更した場合に必要となる作業について説明します。
- (例)
-
-
ディレクトリの削除/名称変更
アプリケーションディレクトリ,EJB-JARディレクトリ,およびWARディレクトリは削除できません。また,ディレクトリ名は変更できません。削除した場合や名称を変更した場合には,アプリケーションを再インポートする必要があります。
-
JARファイルの追加/変更/削除
ライブラリJARの追加,削除,およびファイル名の変更はできません。ライブラリJAR(application.xmlで宣言していないJARファイル)を追加しても,そのJARファイルは読み込まれません。アプリケーションのインポート時に存在したライブラリJARのファイル名を変更した場合や,ライブラリJARを削除した場合には,アプリケーションを再インポートする必要があります。
なお,WARディレクトリ/WEB-INF/libディレクトリでは,JARファイルの追加/変更/削除はできます。
-
DDの変更
ユーザがアプリケーションディレクトリに存在するDDを変更しても,J2EEサーバは更新を検知しません。DDの定義を変更する場合,開発環境で定義を変更してからアプリケーションをインポートし直してください。または,サーバ管理コマンドを使用してください。ただし,クラスファイルに記述されたアノテーションまたはcosminexus.xmlは,次回J2EEアプリケーションを開始したときのクラスファイルの再読み込みで,更新を反映させることができます。
なお,サーバ管理コマンド実行時にアプリケーションディレクトリの構成がチェックされます。
-
アプリケーションディレクトリの変更可否を次の表に示します。
対象 |
ディレクトリおよびファイル |
ディレクトリおよびファイルへの操作 |
アプリケーションの状態 |
説明 |
|
---|---|---|---|---|---|
停止 |
開始 |
||||
J2EEアプリケーション |
アプリケーションディレクトリ |
追加 |
− |
− |
− |
内容変更 |
− |
− |
− |
||
名称変更 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
削除 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
application.xml |
追加 |
− |
− |
− |
|
内容変更 |
○ |
× |
DDの直接編集はできない。DDの定義の更新にはサーバ管理コマンドを使用する。※1 |
||
名称変更 |
− |
− |
− |
||
削除 |
△ |
× |
− |
||
cosminexus.xml |
追加 |
◎ |
○ |
− |
|
内容変更 |
◎ |
○ |
− |
||
名称変更 |
− |
− |
− |
||
削除 |
◎ |
○ |
− |
||
EJBアプリケーション |
EJB-JARディレクトリ |
追加 |
△ |
− |
− |
内容変更 |
− |
− |
− |
||
名称変更 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
削除 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
EJBを構成するクラスファイル |
追加 |
◎ |
× |
クラスを追加したあとで,サーバ管理コマンドで属性を編集する必要がある。 |
|
内容変更 |
◎ |
× |
DDにメソッド情報(container-transactionやmethod-permission)が記述されている場合には,DDの情報と同期を取って修正する必要がある。 |
||
名称変更 |
△ |
× |
クラスファイルの内容を変更しないでクラスファイル名を変更しようとした場合,次回クラスローダ時にエラーになる。 |
||
削除 |
◎ |
× |
クラスを削除したあとで,サーバ管理コマンドで属性を編集する必要がある。 |
||
ほかのクラスファイル |
追加 |
◎ |
× |
− |
|
内容変更 |
◎ |
× |
− |
||
名称変更 |
△ |
× |
クラスファイルの内容を変更しないでクラスファイル名を変更しようとした場合,次回クラスローダ時にエラーになる。 |
||
削除 |
◎ |
× |
− |
||
ejb-jar.xml |
追加 |
− |
− |
− |
|
内容変更 |
○ |
× |
DDの直接編集はできない。DDの定義の更新にはサーバ管理コマンドを使用する。※1 |
||
名称変更 |
− |
− |
− |
||
削除 |
△ |
× |
− |
||
Webアプリケーション |
WARディレクトリ |
追加 |
△ |
− |
− |
内容変更 |
− |
− |
− |
||
名称変更 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
削除 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
WEB-INF/classes下のクラスファイルやプロパティファイル |
追加 |
◎ |
× |
− |
|
内容変更 |
◎ |
× |
− |
||
名称変更 |
− |
− |
クラスファイルの内容を変更しないでクラスファイル名を変更しようとした場合,次回クラスローダ時にエラーになる。 |
||
削除 |
◎ |
× |
− |
||
WEB-INF/lib下のJARファイル |
追加 |
◎ |
× |
− |
|
内容変更 |
◎ |
× |
− |
||
名称変更 |
◎ |
× |
− |
||
削除 |
◎ |
× |
− |
||
web.xml |
追加 |
− |
− |
− |
|
内容変更 |
○ |
× |
DDの直接編集はできない。DDの定義の更新にはサーバ管理コマンドを使用する。※1 |
||
名称変更 |
− |
− |
− |
||
削除 |
△ |
× |
− |
||
JSPファイル, タグファイル, 静的コンテンツ(HTMLやJavaScriptなど), JSPファイルまたはタグファイルが依存するファイル※2, JSPコンパイル結果 |
追加 |
◎ |
× |
− |
|
内容変更 |
◎ |
× |
− |
||
名称変更 |
− |
− |
− |
||
削除 |
◎ |
× |
− |
||
ライブラリ |
ライブラリJAR |
追加 |
△ |
× |
アプリケーションの構成変更はできない。ライブラリJARを追加しても無視される。 |
内容変更 |
◎ |
× |
− |
||
名称変更 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
削除 |
△ |
× |
アプリケーションの構成変更はできない。 |
||
参照ライブラリ |
追加 |
◎ |
× |
サーバ管理コマンド(cjsetappprop)で定義を変更する。 |
|
内容変更 |
◎ |
× |
− |
||
名称変更 |
− |
− |
サーバ管理コマンド(cjsetappprop)で定義を変更する。開始状態では変更できない。 |
||
削除 |
○ |
× |
サーバ管理コマンド(cjsetappprop)で定義を変更する。開始状態では削除できない。 |
||
参照ライブラリのディレクトリ |
追加 |
◎ |
× |
− |
|
内容変更 |
◎ |
× |
− |
||
名称変更 |
◎ |
× |
− |
||
削除 |
◎ |
× |
− |
||
リソースアダプタ |
RARファイル |
追加 |
△ |
× |
− |
内容変更 |
○ |
× |
RARファイルを直接変更できない。サーバ管理コマンドを使用してプロパティを変更する。 |
||
名称変更 |
△ |
× |
− |
||
削除 |
△ |
× |
− |