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

Web アプリケーションのバージョン設定機能

JSP 2.0,2.1 JSP ページ ISO-8859-1

2.23  Web アプリケーションのバージョン設定機能

表 2‒68 Web アプリケーションのバージョン設定機能で設定したバージョンによる動作の違い web.xml で

定義されている バージョン

Web アプリケーションのバージョン設定機能で 設定したバージョン

指定なし 2.4 2.5

2.2 2.3 として動作する※1 2.4 として動作する 2.5 として動作する

2.3 2.3 として動作する

2.4 2.4 として動作する

2.5,3.0 2.5 として動作する 2.5※2として動作する

注※1 web.xml で定義されているバージョンが 2.2 の場合,Web アプリケーションのバージョン設定機能で何も設定 しないときは,2.3 の Web アプリケーションとして動作します。

注※2 web.xml で定義されているバージョンが 2.5 の場合,Web アプリケーションのバージョン設定機能で 2.4 を設 定しても,2.5 の Web アプリケーションとして動作します。

! 注意事項

Web アプリケーションのバージョン設定機能は,旧バージョンのアプリケーションの移行などを支援するため の機能です。新規にアプリケーションを開発する場合に使用することは推奨しません。

新規にアプリケーションを開発する場合は,正しいバージョンの web.xml を指定してください。

2.23.2  JSP ファイルおよびタグファイルのコンパイルと実行

Web アプリケーションのバージョン設定機能を使用する際で,JSP ファイルおよびタグファイルのコンパ イル時と実行時で JSP 仕様のバージョンが異なる場合の実行時の動作について説明します。ここでは,JSP 事前コンパイル機能を使用している場合と,使用していない場合に分けて説明します。

(1) JSP 事前コンパイル機能を使用している場合

JSP 事前コンパイル機能では,JSP ファイルのコンパイル時に,JSP ファイルから生成されたクラスファイ ルだけでなく,バージョン情報ファイルも作成されます。バージョン情報ファイルは,JSP 事前コンパイル 機能実行時に出力されるファイルで,JSP ファイルのバージョンが記載されています。

このため,JSP のバージョンが異なる状態には,次の二つの場合があります。

• バージョン情報ファイルと Web アプリケーション実行時の Web アプリケーションバージョンに対応 する JSP 仕様のバージョンが異なる場合

• JSP 事前コンパイル機能によって JSP ファイルから生成されたクラスファイルのバージョンと,それに 対応する JSP 仕様のバージョンが異なる場合

それぞれの場合について,Web アプリケーションの動作を,次の表に記述します。

表 2‒69 バージョン情報ファイルと JSP 仕様のバージョンが異なる場合

ファイル変更のタイミング Web アプリケーションの動作

Web アプリケーション開始前 ケース 1

Web アプリケーション開始後 リロード

有効時

ケース 2

ファイル変更のタイミング Web アプリケーションの動作

Web アプリケーション開始後 リロード

無効時

ケース 2

ケース 1

Web アプリケーション開始前に JSP 事前コンパイルコマンドが実行されている場合,Web アプリケー ション開始時に KDJE39522-E が出力されて,Web アプリケーションの開始に失敗します。

ケース 2

J2EE サーバの再起動または Web アプリケーションの再開始後,ケース 1 と同じ動作になります。

表 2‒70 クラスファイルと JSP 仕様のバージョンが異なる場合

ファイル変更のタイミング Web アプリケーションの動作

Web アプリケーション開始前 ケース 3

Web アプリケーション開始後 リロード

有効時

ケース 4

リロード 無効時

ケース 5

ケース 3

• web.xml で<load-on-startup>が指定されている JSP ファイルの場合

WAR 属性ファイルまたは cosminexus.xml の<start-notify-error>タグに true が指定されている とき,またはタグの指定が省略されているときは,Web アプリケーション開始時に KDJE39298-E が出力されて,Web アプリケーションの開始に失敗します。

cosminexus.xml の<start-notify-error>タグに false が指定されているときは,Web アプリケー ション開始時に KDJE39298-E が出力されますが,Web アプリケーションの開始は成功します。た だし,リクエスト時に KDJE39298-E が出力されて,エラーコード 500(Internal Server Error)

が返されます。

• web.xml で<load-on-startup>が指定されていない JSP ファイルの場合

初回リクエスト時に KDJE39298-E が出力されて,エラーコード 500(Internal Server Error)が 返されます。

ケース 4

• 実行済みの JSP ファイルの場合

J2EE サーバの再起動または Web アプリケーションの再開始後,ケース 3 と同じ動作になります。

• 未実行の JSP ファイルの場合

ケース 3 の「web.xml で<load-on-startup>が指定されていない JSP ファイルの場合」と同じ動作 になります。

ケース 5

• 実行済みの JSP ファイルの場合

リロード実行時に KDJE39317-E が出力されて,JSP のリロードが失敗します(該当するリクエス トからエラーコード 500(Internal Server Error)が返されます)。

• 未実行の JSPP ファイルの場合

ケース 4 の「未実行の JSP ファイルの場合」と同じ動作になります。

! 注意事項

• クラスファイルだけが異なるケース(ケース 3,ケース 4,ケース 5)は,異なるバージョンを指定 して JSP 事前コンパイルコマンドでコンパイルしたクラスファイルで上書きした場合を想定してい ます。そのため,Web アプリケーション開始時の JSP 事前コンパイル機能は該当しません。

• Web アプリケーション開始時の JSP 事前コンパイル機能は,Web アプリケーション開始後にバー ジョン情報ファイルを更新できない(ケース 2)ため,該当しません。

• ケース 1 で Web アプリケーション開始時の JSP 事前コンパイル機能を使用して Web アプリケー ションを開始した場合は,バージョン情報ファイル自体を再作成するため,エラーにはなりません。

また,Web アプリケーション開始前に,JSP 事前コンパイルコマンドを実行する場合は,コマンド 内でバージョンのチェックを実施しているため,コマンド実行時にバージョンの不一致を検知してエ ラーとなることがあります。

• JSP 事前コンパイルで個別の JSP ファイルを指定して JSP コンパイルを実行する場合は,既存のバー ジョン情報ファイルで指定された JSP 仕様のバージョンと,コンパイル時の JSP 仕様のバージョンが 比較されます。その際,バージョンが異なるときは KDJE39522-E が出力されてエラーとなります。

個別の JSP ファイルを指定しない場合は,バージョン情報ファイルが再作成されるため,エラーには なりません。

(2) JSP 事前コンパイル機能を使用していない場合

コンパイル時の Web アプリケーションバージョンと実行時の Web アプリケーションバージョンが異な るクラスファイルの場合,KDJE39334-I が出力されて,JSP ファイルとタグファイルが再コンパイルされ ます。

コンパイル時の Web アプリケーションバージョンと実行時の Web アプリケーションが異なる場合の再 コンパイルの動作を次に示します。

コンパイル時のバージョン 実行時のバージョン(JSP 仕様のバージョン)

web.xml のバージョ

ン ファイル種別 TLD のバージョン 2.2 2.3 2.4 2.5

2.2 JSP ファイル − − − 2.0 2.1

2.3 − − × 2.0 2.1

2.4 JSP ファイル − 1.2※1 1.2 × 2.1

タグファイル 2.0 − − × ×※2

2.5,3.0 JSP ファイル − 1.2※1 1.2 2.0 ×

タグファイル 2.0 − − × ×※2

2.1 − − 2.0 ×

(凡例)

−:該当しない

×:再コンパイルされない

1.2:JSP1.2 仕様で再コンパイルされる 2.0:JSP2.0 仕様で再コンパイルされる 2.1:JSP2.1 仕様で再コンパイルされる 注※1

web.xml のバージョンが 2.2 の場合は Web アプリケーションバージョン 2.3 として動作するため,JSP1.2 仕様で 再コンパイルされます。

注※2

JSP2.1 仕様では,タグファイルは TLD ファイルに定義される JSP バージョンによって準拠する JSP 仕様が決定され ます。Web アプリケーションバージョンが 2.5 でも,タグファイルは JSP2.0 仕様で動作できるため,再コンパイル されません。

2.23.3 実行環境での設定

Web アプリケーションのバージョン設定機能を使用する場合,J2EE サーバおよび JSP 事前コンパイルの コマンド設定が必要です。

(1) J2EE サーバの設定

J2EE サーバの設定は,簡易構築定義ファイルで実施します。Web アプリケーションのバージョン設定機 能の定義は,簡易構築定義ファイルの論理 J2EE サーバ(j2ee-server)の<configuration>タグ内の webserver.application.lower_version に指定します。このパラメタでは,Web アプリケーションのバー ジョン設定機能を使用するかどうかを指定します。

簡易構築定義ファイル,および指定するパラメタの詳細については,マニュアル「アプリケーションサー バ リファレンス 定義編(サーバ定義)」の「4.6 簡易構築定義ファイル」を参照してください。

(2) JSP 事前コンパイルのコマンドでの設定

JSP 事前コンパイルの設定は,cjjspc コマンドの-lowerversion オプションで実施します。cjjspc コマンド の詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「cjjspc(JSP の 事前コンパイル)」を参照してください。

2.23.4 Web アプリケーションのバージョン指定機能を使用する場合 の注意事項

ここでは,Web アプリケーションのバージョン設定機能を使用する場合の注意事項について説明します。

(1) アノテーションの使用

Web アプリケーションのバージョン設定機能でアノテーションを使用できる Web アプリケーションの バージョンを設定しても,アノテーション情報は読み込まれません。

(2) J2EE アプリケーションのエクスポート

Web アプリケーションのバージョン設定機能を有効にして,Web アプリケーションをエクスポートした 場合,Web アプリケーションのバージョン設定機能で設定したバージョンに変更されてエクスポートはさ れません。インポートしたときと同じバージョンの Web アプリケーションがエクスポートされます。

Outline

関連したドキュメント