Hitachi

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


2.5.5 JSPコンパイル結果のライフサイクルと出力先

JSPは,Webコンテナ上でコンパイルされ,Javaソースファイルおよびクラスファイルが生成されます。Webコンテナでは,JSPのコンパイル結果である,Javaソースファイルおよびクラスファイルを,J2EEサーバの再起動時に保持するかどうか設定できます。ここでは,JSPファイルのコンパイル結果を保持するための設定について説明します。

JSP事前コンパイル機能を使用している場合の,JSPコンパイル結果のライフサイクルと,JSPコンパイル結果の出力先について説明します。

〈この項の構成〉

(1) JSPコンパイル結果のライフサイクル

JSP事前コンパイルを使用している場合のJSPのコンパイル結果のライフサイクルについて説明します。

コンパイル結果の生成

JSP事前コンパイル機能を使用する場合は,次のどちらかのタイミングでコンパイル結果が生成されます。

  • cjjspcコマンドを実行するとき

  • cjstartappコマンドに-jspcオプションを指定してWebアプリケーションを開始するとき

コンパイル結果の削除

アーカイブ形式のJ2EEアプリケーションの場合,アプリケーション開始時のJSP事前コンパイルを実行して生成されたコンパイル結果は,アプリケーションの停止時に削除されます。

(2) JSPコンパイル結果の出力先

JSP事前コンパイルを実施すると,JSPワークディレクトリが作成され,JSPコンパイル結果はJSPワークディレクトリに出力されます。ただし,コンパイル対象となるJSPファイルが存在しない場合は,JSPワークディレクトリは作成されません。出力されるファイルは次のとおりです。

  1. JSPファイルから生成されたJavaソースファイル

  2. 1.のJavaソースファイルをコンパイルしたクラスファイル

  3. タグファイルから生成されたJavaソースファイル

  4. 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ワークディレクトリはデフォルトのディレクトリ名となっています。

図2‒7 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ワークディレクトリの状態が不正となるおそれがあります。