12.4.2 アプリケーションディレクトリの構成

アプリケーションディレクトリは,展開ディレクトリ形式のJ2EEアプリケーションのルートディレクトリです。展開ディレクトリ形式のJ2EEアプリケーションを作成する場合には,アプリケーションディレクトリを作成し,アプリケーションディレクトリ下に,EJB-JAR,Webアプリケーションなどの構成要素を格納します。アプリケーションディレクトリの構成を次の表に示します。

表12-3 アプリケーションディレクトリの構成

ディレクトリディレクトリの説明
<アプリケーションディレクトリ>展開ディレクトリ形式のJ2EEアプリケーションのルートディレクトリです。アプリケーションディレクトリの名称は任意です。
 META-INFJ2EEアプリケーションのDDおよびcosminexus.xmlの格納ディレクトリです。このディレクトリの直下に,application.xmlおよびcosminexus.xmlが格納されます。
<EJB-JARディレクトリ>EJBアプリケーションのルートディレクトリです。
 META-INFEJB-JARのDDの格納ディレクトリです。このディレクトリの直下に,ejb-jar.xmlが格納されます。
<パッケージ名>EJB-JARのクラスファイルやプロパティファイルを格納するディレクトリです。
(例)
MyEJB.class
MyEJBHome.class
MyEJBRemote.class
MyResource.properties
<WARディレクトリ>Webアプリケーションのルートディレクトリです。
なお,このディレクトリの直下に,JSPファイルが格納されます。
(例)
index.jsp
 WEB-INFWebアプリケーションのDDの格納ディレクトリです。このディレクトリの直下に,web.xmlが格納されます。
 classesサーブレットクラスファイルやプロパティファイルを格納するディレクトリです。
(例)
MyServlet.class
libタグライブラリなどのJARファイルを格納するディレクトリです。
(例)
MyTagLibrary.jar
RARファイルJ2EEアプリケーションで使用するリソースアダプタです。
<ライブラリディレクトリ>ライブラリJARを格納するディレクトリです。アプリケーションのバージョンがJava EE 5以降の場合,このディレクトリの直下にライブラリJARが格納されます。

注※ リソースアダプタ(RARファイル)をJ2EEアプリケーションに含めて使用する場合に配置します。RARファイルは,アーカイブファイルのまま格納します。リソースアダプタをJ2EEリソースアダプタとしてデプロイする場合は,アプリケーションディレクトリにリソースアダプタを格納する必要はありません。


アプリケーションディレクトリの留意事項を次に示します。

<この項の構成>
(1) アプリケーションディレクトリの作成例
(2) アプリケーションディレクトリの変更

(1) アプリケーションディレクトリの作成例

アプリケーションディレクトリの作成例を次に示します。

ここでは,EJB-JARディレクトリが「subdir/converter」,WARディレクトリが「MyWebApp」,RARファイルが「rardir/DBConnector_DABJ_CP.rar」の場合のアプリケーションディレクトリの構成例,application.xmlの記述例を示します。

(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アプリケーションを開始したときのクラスファイルの再読み込みで,更新を反映させることができます。
    なお,サーバ管理コマンド実行時にアプリケーションディレクトリの構成がチェックされます。

アプリケーションディレクトリの変更可否を次の表に示します。

表12-4 アプリケーションディレクトリの変更可否

対象ディレクトリおよびファイルディレクトリおよびファイルへの操作アプリケーションの状態説明
停止開始
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ファイルを直接変更できない。サーバ管理コマンドを使用してプロパティを変更する。
名称変更×
削除×

(凡例)

「アプリケーションの状態」が「停止」の場合
アプリケーションが停止状態の場合,ディレクトリおよびファイルの種類や操作の内容によって,アプリケーションの再インポートの要否が異なります。
◎:再インポートは不要(次回アプリケーション開始時に操作が反映される)。
○:条件を満たす場合には,再インポートは不要。条件は「説明」を参照。
△:再インポートが必要。
-:該当しない。
「アプリケーションの状態」が「開始」の場合
アプリケーションが開始状態でリロード機能が無効の場合,ディレクトリおよびファイルの種類や操作の内容によって,操作を許可するかどうかが異なります。
○:操作できる。
×:操作できない。
-:該当しない。
注※1
DDを変更してもJ2EEサーバは更新を検知しないで,操作は無視されます。
次に示すコマンドを次回,実行したときに上書きされます。
cjsetappprop
cjaddapp(-type filterオプション指定時)
cjdeleteapp(-type filterオプション指定時)
cjrenameapp
cjstartapp
注※2
依存するファイルは,JSPファイルまたはタグファイルのincludeディレクティブでインクルードされるファイルや,web.xmlの<include-prelude>または<include-coda>でインクルードされるファイルのことです。