• 検索結果がありません。

JSP 事前コンパイルの方法

2.5  JSP 事前コンパイル機能とコンパイル結果の保持

2.5.2  JSP 事前コンパイルの方法

JSP 事前コンパイル方法には次の二つがあります。

• cjjspc コマンドによる JSP 事前コンパイル

• cjstartapp コマンドによる J2EE アプリケーション開始時の JSP 事前コンパイル

ここでは,JSP 事前コンパイルを実行するコマンドの概要と,コンパイル方法について説明します。なお,

コンパイル方法は,どの場面で JSP ファイルを事前にコンパイルするかによって異なります。JSP 事前コン パイルを適用する場面とコンパイル方法については,「2.5.3 JSP 事前コンパイルの適用例」を参照してく ださい。

(1) コマンドの概要

ここでは,JSP 事前コンパイルを実施するための前提条件と,JSP 事前コンパイル実行時に必要なファイ ル,および実行後に生成されるファイルについて説明します。

前提条件

JSP 事前コンパイルを実施するためには,コンパイルする JSP ファイルが Web アプリケーションの ルートディレクトリ以下,またはそのサブディレクトリ以下に格納されていることが前提です。

JSP 事前コンパイルに必要なファイル

JSP 事前コンパイルを実施するためには,次に示すファイルが必要です。

• JSP ファイル(JSP 1.1,JSP 1.2,JSP 2.0,または JSP 2.1)※1

• JSP 2.0 仕様または JSP 2.1 仕様に準拠したタグファイル

• JSP ファイルおよびタグファイルから静的にインクルードされるファイル

• TLD ファイル※2

• web.xml※2,※3

• コンパイルに必要なクラスライブラリ 注※1 

JSP ファイルとは,次に示すファイルを指します。

• 拡張子が.jsp または.jspx であるファイル(.jspx は JSP 2.0 以降の場合だけ)

• web.xml の<jsp-file>タグに指定されたファイル

• web.xml の<jsp-property-group><url-pattern>タグに合致するファイル(JSP 2.0 以降の場 合だけ)

注※2 

JSP 事前コンパイル実行時に DTD または XML スキーマに従っているかどうかが検証されます。

注※3 

web.xml がない場合,Web アプリケーションのバージョンを 3.0 と見なしてコンパイルが実行さ れます。

JSP 事前コンパイル後に生成されるファイル(JSP コンパイル結果)

JSP ファイルやタグファイルから生成された,Java ソースファイルおよびクラスファイルを JSP コンパ イル結果といいます。JSP 事前コンパイルを実施すると,JSP ワークディレクトリに次に示す JSP コン パイル結果が生成されます。

• JSP ファイルから生成された Java ソースファイルおよびクラスファイル

• タグファイルから生成された Java ソースファイルおよびクラスファイル

なお,JSP 事前コンパイル実行時には,Java ソースファイルを保存しておくかどうかを設定できます。

(2) cjjspc コマンドによる JSP 事前コンパイル

cjjspc コマンドは,JSP 事前コンパイルを実施するためのコマンドです。アプリケーションの開発時などに このコマンドを実施すると,Web アプリケーションに含まれる JSP ファイルをコンパイルできます。

cjjspc コマンドによる JSP 事前コンパイルには,次の二つの方法があります。

• JSP ファイル単位での事前コンパイル

Web アプリケーションに含まれる JSP ファイルのうち,指定された JSP ファイルだけをコンパイルし ます。

• Web アプリケーション単位での事前コンパイル

Web アプリケーションに含まれるすべての JSP ファイルをコンパイルします。

また,このコマンド実行時に次の内容を設定できます。

• コンパイル不要な JSP ファイルの指定

コンパイル不要な JSP ファイルがある場合,あらかじめ不要なファイルを指定しておくことで,事前コ ンパイルの対象外にできます。指定方法には,コンパイル不要な JSP ファイル名をコマンドに一つずつ

指定する方法と,コンパイル不要な JSP ファイル名をファイルにまとめて記載したファイル(コンパイ ル対象外リストファイル)をコマンドに指定する方法があります。

• 実行結果リストファイルを出力するかどうかの指定

実行結果リストファイルを出力するかどうかを指定できます。実行結果リストファイルとは,cjjspc コ マンドの実行結果を出力したファイルです。コンパイルに成功した JSP ファイル,コンパイルに失敗し た JSP ファイル,およびコンパイル対象外の JSP ファイルのパスを一覧で出力します。

• Java ソースファイルを保存するかどうかの指定

JSP から生成された Java ソースファイルを保存しておくかどうかを指定できます。

• JSP コンパイル時の Java 言語仕様のバージョンの指定

JSP トランスレーションによって生成された Java ソースファイルをコンパイルするときの Java 言語 仕様のバージョンを指定できます。

• JSP ワークディレクトリ名を変更するかどうかの指定

JSP ワークディレクトリとは,JSP コンパイル結果を格納するディレクトリのことです。JSP ワーク ディレクトリ名は変更できます。なお,JSP ワークディレクトリについては,「2.5.5(2) JSP コンパイ ル結果の出力先」を参照してください。

• デフォルトの文字エンコーディングの指定

JSP ファイルのデフォルトの文字エンコーディングを指定できます。なお,デフォルトの文字エンコー ディングの概要については,「2.6 デフォルトの文字エンコーディング設定機能」を参照してくださ い。また,07-00 で JSP 事前コンパイル機能を使用していた Web アプリケーションに対して,07-10 でデフォルトの文字エンコーディングを設定する場合の注意については,「2.6.8(5) 07-00 で JSP 事前 コンパイルを実行した Web アプリケーションへの文字エンコーディング設定」を参照してください。

• JSP デバッグ機能を使用するかどうかの指定

JSP デバッグ機能を使用するかどうかを指定できます。JSP デバッグ機能については「2.4 JSP デバッ グ機能」を参照してください。

• 暗黙インポートするクラスの指定

page/tag ディレクティブの import 属性暗黙インポート機能を使用して暗黙インポートするクラス名 を指定できます。page/tag ディレクティブの import 属性暗黙インポート機能については「2.3.7  page/tag ディレクティブの import 属性暗黙インポート」を参照してください。

なお,これらの設定は,コマンドのオプションで指定します。JSP の事前コンパイルのコマンド(cjjspc コ マンド)の使い方については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjjspc

(JSP の事前コンパイル)」を参照してください。

! 注意事項

JavaVM 起動オプションの変更

環境変数「CJ_CMD_JVM_ARGS」を設定すると,cjjspc コマンドが動作する JavaVM の起動オプションを変 更できます。

デフォルトでは JavaVM の起動オプションに「-Xmx512m」(Java ヒープメモリ領域の最大値が 512MB)が設 定されています。cjjspc コマンドで大規模な Web アプリケーションをコンパイルする場合,Java ヒープメモリ 領域の最大値を超え,java.lang.OutOfMemoryError が発生するおそれがあります。したがって,大規模な Web アプリケーションをコンパイルする場合は,あらかじめ環境変数「CJ_CMD_JVM_ARGS」に,適切な Java ヒープメモリ領域を指定する必要があります。

参考

• cjjspc コマンドを使用した JSP 事前コンパイルで,JSP ファイルまたはタグファイルのトランスレーション 時にエラーが発生すると,エラーメッセージが出力されます。エラーメッセージはコンソールに出力されま す。

• コマンド実行時に標準出力または標準エラー出力にログを出力します。ログ出力の結果をファイルに残す場 合は,コマンドの出力をファイルにリダイレクトしてください。

ログ出力の結果をファイルに残す場合の指定例を示します。

Windows の場合の指定例

> cjjspc -root D:\app\webapp1 1> .\stdout.log 2> .\stderr.log UNIX の場合の指定例

# cjjspc -root /app/webapp1 1> ./stdout.log 2> ./stderr.log

(3) cjstartapp コマンドによる J2EE アプリケーション開始時の JSP 事前コンパイル

cjstartapp コマンドは,J2EE アプリケーションを開始するためのコマンドです。cjstartapp コマンドに,

JSP 事前コンパイルをするオプションを指定すると,JSP の事前コンパイルを実施してから,J2EE アプリ ケーションが開始されます。J2EE アプリケーション開始時の JSP 事前コンパイルでは,J2EE アプリケー ションに含まれるすべての JSP ファイルをコンパイルします。

このコマンドの実行時の動作はあらかじめ設定できます。設定できる内容を次に示します。

• Java ソースファイルを保存するかどうかの指定

JSP ファイルから生成された Java ソースファイルを保存しておくかどうかを指定できます。

• JSP コンパイル時の Java 言語仕様のバージョンの指定

JSP トランスレーションによって生成された Java ソースファイルをコンパイルするときの Java 言語 仕様のバージョンを指定できます。

• JSP ワークディレクトリ名を変更するかどうかの指定

JSP ワークディレクトリとは,JSP コンパイル結果を格納するディレクトリのことです。JSP ワーク ディレクトリ名は変更できます。なお,JSP ワークディレクトリについては,「2.5.5(2) JSP コンパイ ル結果の出力先」を参照してください。

• 暗黙インポートするクラスの指定

page/tag ディレクティブの import 属性暗黙インポート機能を使用して暗黙インポートするクラス名 を指定できます。page/tag ディレクティブの import 属性暗黙インポート機能については「2.3.7  page/tag ディレクティブの import 属性暗黙インポート」を参照してください。

なお,これらの設定は,J2EE サーバの動作設定のカスタマイズで実施します。J2EE サーバの動作設定のカ スタマイズについては,「2.5.8 実行環境での設定(J2EE サーバの設定)」を参照してください。

参考

cjstartapp コマンドを使用した JSP 事前コンパイルで,JSP ファイルまたはタグファイルのトランスレーション 時にエラーが発生すると,エラーメッセージが出力されます。エラーメッセージは Web サーブレットログ,ま たはメッセージログに出力されます。

! 注意事項

JSP から生成される Java ソースのコンパイルについて

cjjspc コマンドを使用して生成されたクラスファイルは,J2EE サーバでの実行時に使用されます。cjjspc コマ ンドでは,J2EE サーバで生成されたクラスファイルと同じクラスファイルを生成します。

このため,JSP ファイルまたはタグファイルから生成された Java ソースをコンパイルする場合,-source オプ ションでの Java 言語仕様のバージョンの指定,または-classpath オプションでのクラスパスの指定以外はでき ません。Java 言語仕様のバージョンの指定方法についてはマニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjjspc(JSP の事前コンパイル)」を参照してください。

Outline

関連したドキュメント