2.5.5 JSPコンパイル結果のライフサイクルと出力先
JSPは,Webコンテナ上でコンパイルされ,Javaソースファイルおよびクラスファイルが生成されます。Webコンテナでは,JSPのコンパイル結果である,Javaソースファイルおよびクラスファイルを,J2EEサーバの再起動時に保持するかどうか設定できます。ここでは,JSPファイルのコンパイル結果を保持するための設定について説明します。
JSP事前コンパイル機能を使用している場合の,JSPコンパイル結果のライフサイクルと,JSPコンパイル結果の出力先について説明します。
- 〈この項の構成〉
(2) JSPコンパイル結果の出力先
JSP事前コンパイルを実施すると,JSPワークディレクトリが作成され,JSPコンパイル結果はJSPワークディレクトリに出力されます。ただし,コンパイル対象となるJSPファイルが存在しない場合は,JSPワークディレクトリは作成されません。出力されるファイルは次のとおりです。
-
JSPファイルから生成されたJavaソースファイル※
-
1.のJavaソースファイルをコンパイルしたクラスファイル
-
タグファイルから生成されたJavaソースファイル※
-
3.のJavaソースファイルをコンパイルしたクラスファイル
注※ JSP事前コンパイルを実施する場合は,これらのファイルを保存するかどうかを設定できます。
ここでは,デフォルトの出力先と,出力先のディレクトリ構成について説明します。なお,出力されるクラス名については,「2.5.7 JSPコンパイル結果のクラス名」を参照してください。
(a) デフォルトの出力先
JSP事前コンパイルを実行する場合,コンパイル結果はJSPワークディレクトリに出力されます。デフォルトのJSPワークディレクトリは次の場所になります。
- Windowsの場合
-
<WebアプリケーションのWEB-INFディレクトリ>\cosminexus_jsp_work
- UNIXの場合
-
<WebアプリケーションのWEB-INFディレクトリ>/cosminexus_jsp_work
WEB-INFディレクトリがない場合,JSPワークディレクトリ作成時にWEB-INFディレクトリおよびJSPワークディレクトリが自動的に作成されます。
なお,JSPワークディレクトリ名はデフォルト値が設定されていますが,必要に応じて変更できます。cjjspcコマンドでJSP事前コンパイルを実施する場合のJSPワークディレクトリ名の変更については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjjspc(JSPの事前コンパイル)」を参照してください。cjstartappコマンドでJ2EEアプリケーションの開始時にJSP事前コンパイルを実施する場合のJSPワークディレクトリ名の変更については,「2.5.8 実行環境での設定(J2EEサーバの設定)」を参照してください。
また,JSPワークディレクトリ名を変更した場合は,簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ内に,パラメタwebserver.jsp.precompile.jsp_work_dirで変更したJSPワークディレクトリ名を指定する必要があります。簡易構築定義ファイル,および指定するパラメタの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.3 簡易構築定義ファイル」を参照してください。
(b) 出力先のディレクトリ構成
JSPコンパイル結果は,JSPワークディレクトリに出力されます。JSPコンパイル結果の出力先ディレクトリ構成を次の図に示します。なお,この図ではJSPワークディレクトリはデフォルトのディレクトリ名となっています。
ディレクトリ構成について説明します。
-
タグファイルから生成されたクラスのパッケージ名は次の形式となります。
- WEB-INF/tags下のタグファイルの場合
-
org.apache.jsp.tag.web.</WEB-INF/tagsディレクトリ下のパス>
- WEB-INF/lib下のjarファイルに含まれるタグファイルの場合
-
org.apache.jsp.tag.meta.<jarファイル名をエンコードした文字列>.<jarファイル内のMETA-INF/tagsディレクトリ下のパス>
-
JSPファイルおよびタグファイルから生成されるクラスファイルの出力先ディレクトリのパス長は,OSの上限によって制限があります。OSの上限を超えるパス長になる場合は,JSPワークディレクトリ名を変更してください。
- 注意事項
-
複数のJ2EEサーバで同じJSPワークディレクトリを指定した場合,同じコンテキストルートのアプリケーションをデプロイしたとき,JSPワークディレクトリの状態が不正となるおそれがあります。