クラスローダによってロードされるファイルのうち,監視対象のファイルが更新されたときに,J2EEサーバが更新を検知してリロードが実行されます。更新検知の対象となるタイミングは,J2EEアプリケーションの開始時です。
ただし,クラスローダでロードされていないファイルは,更新検知の対象になりません。アプリケーションディレクトリ以下にあってもロードされていないファイルや,アプリケーションディレクトリを使用していないJ2EEアプリケーションのファイルは,更新検知の対象になりません。また,DD(ejb-jar.xml,web.xml)は,更新検知の対象になりません。
また,展開ディレクトリ形式で,更新後のJSPファイルの更新日付が古い場合はJSPの再コンパイルが実行されません。
更新検知の対象ファイルを次の表に示します。
表12-13 更新検知の対象ファイル
種別 | 更新検知の対象ファイル | リロードの適用範囲※1 | |||
---|---|---|---|---|---|
app | web | jsp | |||
アプリケーションディレクトリ以下のファイル |
| ○ | - | - | |
EJB-JARディレクトリ以下のEJBアプリケーション(EJB-JAR)のファイル |
| ○ | - | - | |
WARディレクトリ以下のWebアプリケーション(WAR)のファイル | サーブレット |
| ○ | ○ | - |
JSP |
| ○※2 | ○※2 | ○※2 | |
| ○※3 | ○※3 | ○※3 | ||
| ○※4 | ○※4 | ○※4 | ||
| ○※5 | ○※5 | ○※5 | ||
アプリケーションディレクトリ以外のファイル |
| ○ | - | - |
(凡例)○:更新検知の対象になる -:更新検知の対象にならない
注※1 リロードの適用範囲のapp,web,jspは,usrconf.propertiesのejbserver.deploy.context.reload_scopeキーの指定値です。
注※2 JSPの事前コンパイルがされていない状態で,ロード済みの場合に,更新検知の対象になります。
注※3 JSPの事前コンパイルがされていない状態で,ロード済みのJSPファイルまたはタグファイルで使用されている場合に,更新検知の対象になります。
注※4 JSPの事前コンパイルがされている場合に,更新検知の対象になります。
注※5 JSPファイルまたはタグファイルが依存するファイルの場合に,更新検知の対象になります。依存するファイルは,JSPファイルまたはタグファイルのincludeディレクティブでインクルードされるファイルや,web.xmlの<include-prelude>または<include-coda>でインクルードされるファイルのことです。
アプリケーションディレクトリ以下のファイルのうち,更新検知の対象となるファイルの例を次の表に示します。
表12-14 更新検知の対象ファイルの例
ディレクトリ | ディレクトリ下のファイル | 更新検知の対象 | |||||
---|---|---|---|---|---|---|---|
<アプリケーションディレクトリ> | ライブラリJAR例:MyLibrary.jar | ○ | |||||
META-INF |
| - | |||||
<EJB-JARディレクトリ> | - | - | |||||
META-INF | EJB-JARのDD(ejb-jar.xml) | - | |||||
<パッケージ名> | Enterprise Beanクラス 例:MyEJB.class | ○ | |||||
ホームインタフェースクラス 例:MyEJBHome.class | ○ | ||||||
コンポーネントインタフェースクラス 例:MyEJBRemote.class | ○ | ||||||
ビジネスインタフェースクラス 例:MyBusiness.class | ○ | ||||||
EJBから利用されるクラス 例:MyClass.class | ○ | ||||||
java.util.ResourceBundleによってロードされたプロパティファイル 例:MyResource.properties | ○ | ||||||
<WARディレクトリ> | JSPファイル 例:MyJsp.jsp | ○ | |||||
静的コンテンツ 例:MyStatic.jspf | ○ | ||||||
HTMLファイル 例:MyIndex.html | - | ||||||
META-INF | - | - | |||||
WEB-INF | WebアプリケーションのDD(web.xml) | - | |||||
タグライブラリ記述子ファイル 例:MyTaglib.tld | ○ | ||||||
Webアプリケーションプロパティファイル(hitachi_web.properties) | - | ||||||
classes | - | - | |||||
<パッケージ名> | java.util.ResourceBundleによってロードされたプロパティファイル 例:MyResource.properties | ○ | |||||
サーブレットクラス 例:MyServlet.class | ○ | ||||||
lib | JARファイル 例:MyLibrary.jar | ○ | |||||
tags | タグファイル 例:MyTag.tag | ○ | |||||
<JSPワークディレクトリ> | JSPコンパイル結果 例:MyJsp$jsp.class | ○ | |||||
WEB-INF | tags | タグファイルコンパイル結果 例:MyTag$tag.class | ○ | ||||
<アプリケーションディレクトリ以外のディレクトリ> | 参照ライブラリ 例:MyRef.jar | ○ |
(凡例) ○:更新検知の対象になる -:更新検知の対象にならない
監視対象のファイルを変更した場合に,更新が検知されてリロードが実行されるかどうかは,ファイルへの操作によって異なります。リロードの対象となる操作を次の表に示します。
表12-15 リロードの対象となる操作
更新検知の対象ファイル | ファイルへの操作 | 注意点 | |||
---|---|---|---|---|---|
追加 | 削除 | 更新 | |||
アプリケーションディレクトリ以下のファイル | ライブラリJAR | × | × | ○ |
|
Cosminexusアプリケーション属性ファイル | × | × | × |
| |
EJB-JARディレクトリ以下のEJBアプリケーション(EJB-JAR)のファイル | EJBを構成するクラスファイル | × | × | ○ |
|
ほかのクラスファイル | × | × | ○ |
| |
WARディレクトリ以下のWebアプリケーション(WAR)のファイル | クラスファイル | △ | ○ | ○ | - |
JARファイル | ○ | ○ | ○ | - | |
プロパティファイル | △ | ○ | ○ | - | |
JSPファイル | △ | ○※2 | ○※2 | - | |
タグファイル | △ | ○※2 | ○※2 |
| |
JSPファイルまたはタグファイルが依存するファイル | △ | ○※2 | ○※2 | - | |
静的コンテンツ | △ | × | × |
| |
JSPコンパイル結果(JSP,タグファイルをコンパイルして生成されたクラスファイル) | △ | ○ | ○ |
| |
アプリケーションディレクトリ以外のファイル | 参照ライブラリ | × | × | ○ |
|
注※1 更新できるアノテーションと更新できないアノテーションがあります。アノテーションについては,「11.6.1 アノテーションの更新」を参照してください。
注※2 JSPの事前コンパイル機能が有効な場合は,△になります。