7.5.2 更新検知の対象となるファイル

クラスローダによってロードされるファイルのうち,監視対象のファイルが更新されたときに,J2EEサーバが更新を検知してリロードが実行されます。更新検知の対象となるタイミングは,J2EEアプリケーションの開始時です。

ただし,クラスローダでロードされていないファイルは,更新検知の対象になりません。アプリケーションディレクトリ以下にあってもロードされていないファイルや,アプリケーションディレクトリを使用していないJ2EEアプリケーションのファイルは,更新検知の対象になりません。また,DD(ejb-jar.xml,web.xml)は,更新検知の対象になりません。

<この項の構成>
(1) 更新検知の対象ファイル
(2) 更新検知の対象ファイルの例
(3) リロードの対象となる操作

(1) 更新検知の対象ファイル

更新検知の対象ファイルを次の表に示します。

表7-8 更新検知の対象ファイル

種別更新検知の対象ファイルリロードの適用範囲※1
appwebjsp
アプリケーションディレクトリ以下のファイル
  • ライブラリJAR
EJB-JARディレクトリ以下のEJBアプリケーション(EJB-JAR)のファイル
  • クラスファイル
  • java.util.ResourceBundleによってロードされたプロパティファイル
WARディレクトリ以下のWebアプリケーション(WAR)のファイルサーブレット
  • クラスファイル
  • JARファイル
  • java.util.ResourceBundleによってロードされたプロパティファイル
JSP
  • JSPファイル
※2※2※2
  • タグファイル
  • タグライブラリ記述子
※3※3※3
  • JSPコンパイル結果
  • タグファイルコンパイル結果
※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>でインクルードされるファイルのことです。

(2) 更新検知の対象ファイルの例

アプリケーションディレクトリ以下のファルのうち,更新検知の対象となるファイルの例を次の表に示します。

表7-9 更新検知の対象ファイルの例

ディレクトリディレクトリ下のファイル更新検知の対象
<アプリケーションディレクトリ>ライブラリJAR
例:MyLibrary.jar
 META-INFJ2EEアプリケーションのDD(application.xml)
<EJB-JARディレクトリ>
 META-INFEJB-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-INFWebアプリケーションのDD(web.xml)
タグライブラリ記述子ファイル
例:MyTaglib.tld
Webアプリケーションプロパティファイル(hitachi_web.properties)
 classes
 <パッケージ名>java.util.ResourceBundleによってロードされたプロパティファイル
例:MyResource.properties
サーブレットクラス
例:MyServlet.class
libJARファイル
例:MyLibrary.jar
tagsタグファイル
例:MyTag.tag
<JSPワークディレクトリ>JSPコンパイル結果
例:MyJsp$jsp.class
 WEB-INFtagsタグファイルコンパイル結果
例:MyTag$tag.class
<アプリケーションディレクトリ以外のディレクトリ>参照ライブラリ
例:MyRef.jar

(凡例) ○:更新検知の対象になる -:更新検知の対象にならない


(3) リロードの対象となる操作

監視対象のファイルを変更した場合に,更新が検知されてリロードが実行されるかどうかは,ファイルへの操作によって異なります。リロードの対象となる操作を次の表に示します。

表7-10 リロードの対象となる操作

更新検知の対象ファイルファイルへの操作注意点
追加削除更新
アプリケーションディレクトリ以下のファイルライブラリJAR××
  • ライブラリJARの名称は変更できません。
  • ライブラリJARの構成は変更できます。
EJB-JARディレクトリ以下のEJBアプリケーション(EJB-JAR)のファイルEJBを構成するクラスファイル××
  • アノテーションも読み込まれます。※1
  • クラス名の変更はできません。
  • これまで参照していなかったクラスを参照するように更新した場合,参照先のクラスファイルもリロードの対象となります。
ほかのクラスファイル××
  • アノテーションも読み込まれます。※1
  • これまで参照していなかったクラスを参照するように更新した場合,参照先のクラスファイルもリロードの対象となります。
WARディレクトリ以下のWebアプリケーション(WAR)のファイルクラスファイル
JARファイル
プロパティファイル
JSPファイル※2※2
タグファイル※2※2
  • JARファイル内にあるタグファイルは除きます。
JSPファイルまたはタグファイルが依存するファイル※2※2
静的コンテンツ××
  • リロード機能を使用した場合には,キャッシュが無効になります。
JSPコンパイル結果(JSP,タグファイルをコンパイルして生成されたクラスファイル)
  • JSPの事前コンパイル機能が有効である必要があります。
アプリケーションディレクトリ以外のファイル参照ライブラリ××
  • 参照ライブラリの名称は変更できません。
  • 参照ライブラリが指すJARファイルの構成およびクラスパス内のファイルの更新はできます。
  • スタブおよびコンテナ生成クラスの再生成が必要な場合には,再生成されます。
(凡例)
○:リロードが実行される
△:操作はできるが,リロードは実行されない
×:リロードが実行されない
注※1
更新できるアノテーションと更新できないアノテーションがあります。アノテーションについては,「5.2.4 Enterprise Beanのアノテーション指定」を参照してください。
注※2
JSPの事前コンパイル機能が有効な場合は,△になります。