Cosminexus 機能解説

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

4.7.6 JSP事前コンパイルを使用しない場合のJSPコンパイル結果

JSP事前コンパイルを使用しない場合,JSPファイルのコンパイルは,JSPファイルへの初回アクセス時に実施されます。ここでは,JSP事前コンパイル機能を使用しない場合の,JSPコンパイル結果について説明します。

<この項の構成>
(1) JSPコンパイル結果のライフサイクル
(2) JSPファイルのコンパイル結果の保持
(3) JSPコンパイル結果の出力先

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

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

コンパイル結果の生成
JSP事前コンパイル機能で事前にJSPファイルのコンパイルを実施していない場合は,JSPコンパイル結果は次のどちらかのタイミングで生成されます。
  • JSPに最初にアクセスするとき
  • DD(web.xml)でJSPに対し<load-on-startup>が指定されている,Webアプリケーションを開始するとき

コンパイル結果の削除
JSPのコンパイル結果は,次のタイミングで削除されます。
  • J2EEアプリケーションのアンデプロイ時
  • J2EEサーバの起動時
  • J2EEサーバの終了時
注※
JSPコンパイル結果を保持しない設定にしている場合,削除されます。なお,J2EEサーバ起動時については,コンパイル結果の削除は,サーバが強制終了された場合に備えて実施されます。

(2) JSPファイルのコンパイル結果の保持

JSP事前コンパイルをしない場合,JSPコンパイル結果はJ2EEサーバを停止または再起動するときに削除されます。Webコンテナでは,JSPのコンパイル結果である,Javaソースファイルおよびクラスファイルを,J2EEサーバの再起動時に保持するかどうか設定できます。

JSPファイルのコンパイル結果を保持するための設定は,J2EEサーバのプロパティをカスタマイズして設定します。J2EEサーバの動作設定のカスタマイズについては,マニュアル「Cosminexus システム構築ガイド」を参照してください。

注意

Webアプリケーションアンデプロイ時の注意
デフォルトでは,JSPのコンパイル結果を保持する設定になっています。また,JSPコンパイル結果を保持する設定をしていても,Webアプリケーションをアンデプロイすると,JSPのコンパイル結果は削除されます。このため,ユーザは,サーバの再起動時にJSPのコンパイル結果を削除する必要はありません。JSPコンパイル結果を保持する設定でWebコンテナを稼働したあと,JSPコンパイル結果が不要となった場合は,J2EEアプリケーションをアンデプロイしてください。
JSPのコンパイル結果は保持する設定にしておくことをお勧めします。

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

JSP事前コンパイルを実施していない場合,JSPコンパイル結果はJSP用テンポラリディレクトリに出力されます。

出力されるファイルは次のとおりです。

  1. JSPファイルから生成されたJavaソースファイル
  2. 1.のJavaソースファイルをコンパイルしたクラスファイル
  3. タグファイルから生成されたJavaソースファイル
  4. 3.のJavaソースファイルをコンパイルしたクラスファイル

ここでは,デフォルトの出力先と,出力先のディレクトリ構成について説明します。

(a) デフォルトの出力先

JSP事前コンパイルを実行していない場合,JSPコンパイル結果は,JSP用テンポラリディレクトリ下に作成される,Webアプリケーション単位のディレクトリに出力されます。デフォルトのJSP用テンポラリディレクトリは次の場所になります。

Windowsの場合
<Cosminexusのインストールディレクトリ>\CC\server\repository\<サーバ名称>\web

UNIXの場合
/opt/Cosminexus/CC/server/repository/<サーバ名称>/web

なお,JSP用テンポラリディレクトリは,デフォルト値が設定されていますが,必要に応じて変更できます。JSP用テンポラリディレクトリの変更については,マニュアル「Cosminexus システム構築ガイド」のJ2EEサーバのカスタマイズに関する説明を参照してください。

(b) 出力先のディレクトリ構成

JSPコンパイル結果の出力先ディレクトリ構成を次の図に示します。

図4-17 JSPコンパイル結果の出力先ディレクトリ構成(JSP事前コンパイルを実行していない場合)

[図データ]

ディレクトリ構成について説明します。