Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

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

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

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

また,展開ディレクトリ形式で,更新後のJSPファイルの更新日付が古い場合はJSPの再コンパイルが実行されません。

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

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

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

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

種別 更新検知の対象ファイル リロードの適用範囲※1
app web jsp
アプリケーションディレクトリ以下のファイル
  • ライブラリ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) 更新検知の対象ファイルの例

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

表13-14 更新検知の対象ファイルの例

ディレクトリ ディレクトリ下のファイル 更新検知の対象
<アプリケーションディレクトリ> ライブラリJAR例:MyLibrary.jar
  META-INF
  • J2EEアプリケーションのDD(application.xml)
  • アプリケーション属性ファイル(cosminexus.xml)
<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

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


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

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

表13-15 リロードの対象となる操作

更新検知の対象ファイル ファイルへの操作 注意点
追加 削除 更新
アプリケーションディレクトリ以下のファイル ライブラリJAR × ×
  • アノテーションも読み込まれます。※1
  • ライブラリJARの名称は変更できません。
  • ライブラリJARの構成は変更できます。
アプリケーション属性ファイル × × ×
  • リロードを実行する際,cosminexus.xmlの内容が変更または削除されている場合は,定義情報の再読み込みは実施しません。
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 更新できるアノテーションと更新できないアノテーションがあります。アノテーションについては,「12.6.1 アノテーションの更新」を参照してください。

注※2 JSPの事前コンパイル機能が有効な場合は,△になります。