9.16.1 設定方法
次のタイミングでエラーが発生した場合に,エラーを通知してJ2EEアプリケーションの開始処理を中止するかどうかを指定します。
-
J2EEアプリケーションの開始時にロードするように設定されている(<load-on-startup>が設定されている)サーブレットまたはJSPの初期化処理中にエラーが発生した場合
-
タグライブラリ解析時にエラーが発生した場合
(1) 編集する属性ファイル
WAR属性ファイル
(2) 編集する属性ファイルの取得と属性の設定
-
属性ファイルの取得
次のコマンドを実行して,次のWAR属性ファイルを取得します。
- 実行形式
cjgetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] -name <J2EEアプリケーション名> -type war -resname <WAR表示名> -c <WAR属性ファイルパス>
- 実行例
cjgetappprop MyServer -name account -type war -resname account_war -c C:\home\account_war.xml
-
属性の設定
次のコマンドを実行して,WAR属性ファイルの値を反映します。
- 実行形式
cjsetappprop [<サーバ名称>] [-nameserver <プロバイダURL>] -name <J2EEアプリケーション名> -type war -resname <WAR表示名> -c <WAR属性ファイルパス>
- 実行例
cjsetappprop MyServer -name account -type war -resname account_war -c C:\home\account_war.xml
(3) 編集する属性設定項目
サーブレット,JSPが含まれるWARのエラー通知の設定項目を次に示します。
項目 |
必須 |
対応するタグ名 |
---|---|---|
開始時のエラー通知有無 |
△ |
<start-notify-error> |
(4) 注意事項
-
J2EEサーバモードでは,Webアプリケーションの初期化で失敗した場合に,J2EEアプリケーションの開始処理を継続するか,エラーを通知してJ2EEアプリケーションの開始処理を中止するかを設定できます。ただし,Webアプリケーションを利用不可とする必要があるエラーが発生した場合は,エラー通知の設定はできません。エラー通知の設定内容に関係なく,J2EEアプリケーションの開始処理が中止されます。
ここでは,Webアプリケーションの初期化失敗の内容とエラー通知設定の可否について説明します。Webアプリケーションの初期化中に発生するエラーの内容と,J2EEアプリケーションの開始処理を継続するか,またはエラーとして中止するかのエラー通知の設定可否を次の表に示します。
表9‒5 Webアプリケーションの初期化失敗の内容とエラー通知の設定可否 項目
Webアプリケーション初期化失敗の内容
エラー通知の設定可否
JSP用テンポラリディレクトリ
JSP用テンポラリディレクトリのアクセス権がないため,ディレクトリの生成に失敗した場合。
不可
JSP用テンポラリディレクトリのアクセス権がないため,ディレクトリの削除に失敗した場合。
可
web.xml
web.xmlの解析でエラーが発生した場合。
不可
フィルタ
web.xmlのfilter-class要素に指定したフィルタクラスまたはそれが依存するクラスを見つけることができなかった場合。
不可
web.xmlのfilter-class要素に,次に示す不正なフィルタクラスが指定された場合。
-
javax.servlet.Filterインタフェースを実装していないクラス
-
引数を取らないコンストラクタを持っていないクラス
不可
フィルタクラスの初期化で例外が発生した場合。
不可
リスナ
web.xmlのlistener-class要素に指定したリスナクラス,またはそれが依存するクラスを見つけることができなかった場合。
不可
web.xmlのlistener-class要素に,次に示す不正なリスナクラスが指定された場合。
-
次に示すインタフェースを一つも実装していないクラス
javax.servlet.ServletContextListener
javax.servlet.ServletContextAttributeListener
javax.servlet.ServletRequestListener
javax.servlet.ServletRequestAttributeListener
javax.servlet.http.HttpSessionListener
javax.servlet.http.HttpSessionAttributeListener
-
引数を取らないコンストラクタを持っていないクラス
不可
リスナクラスの初期化で例外が発生した場合。
不可
web.xmlで<load-on-startup>を指定したサーブレット
web.xmlのservlet-class要素に指定したサーブレットクラス,またはそれが依存するクラスを見つけることができなかった場合。
可
サーブレットの初期化で例外が発生した場合。
可
web.xmlで<load-on-startup>を指定したJSP
web.xmlのjsp-file要素に指定したJSPファイルを見つけることができなかった場合。
可
JSP用テンポラリディレクトリにサブディレクトリを作成する権限がないため,JSPからJavaソースファイルを生成できなかった場合。
可
JSP用テンポラリディレクトリのサブディレクトリにアクセスする権限がないため,JSPからJavaソースファイルを生成できなかった場合。
可
JSPからJavaソースファイルを生成する際にエラーが発生した場合。
可
JSPから生成されたサーブレットのソースコードのコンパイルで,エラーが発生した場合。
可
Servlet2.3以前のWebアプリケーションで,web.xmlの<taglib>タグでtaglibをマッピングしていない,かつJSPのtaglibディレクティブのuri属性に絶対URIを指定した場合。
可
JSPドキュメントの解析中にエラーが発生した場合。
可
JSPの初期化で例外が発生した場合。
可
タグライブラリ
(<load-on-startup>を指定したJSPの延長で実行される場合)
TLDファイルの読み込みができなかった場合。
可
TLDファイルの解析中にエラーが発生した場合。
可
タグライブラリバリデータクラスまたはそれが依存するクラスを見つけることができなかった場合。
可
次に示す不正なタグライブラリバリデータクラスが指定された場合。
-
javax.servlet.jsp.tagext.TagLibraryValidatorクラスを継承していないクラス
-
引数を取らないコンストラクタを持っていないクラス
可
タグライブラリバリデータクラスの初期化で例外が発生した場合。
可
タグライブラリバリデータによるJSPの検証で例外が発生した場合。
可
TagExtraInfoクラス,またはそれが依存するクラスを見つけることができなかった場合。
可
不正なTagExtraInfoクラスが指定された場合。不正なTagExtraInfoクラスとは,Tei-class要素またはteiclass要素に指定するクラスが,次のどれかの条件に一致するクラスを指す。
-
TagExtraInfoクラスを継承していない
-
インタフェースやabstractクラスである
-
publicなコンストラクタを持っていない
可
TLDファイルのtei-class要素またはteiclass要素で定義したクラスの初期化で例外が発生した場合。
可
タグライブラリバリデータクラスがJSPページの検証で発見したエラーを報告した場合。
可
TagExtraInfoクラスが属性の検証で発見したエラーを報告した場合。
可
TagExtraInfoクラスによる属性の検証で例外が発生した場合。
可
TLDファイルのfunction-class要素で定義したクラスを見つけることができなかった場合。
可
TLDファイルのfunction-class要素で定義したクラスのロードで例外が発生した場合。
可
TLDファイルのfunction-signature要素で定義したparameterクラスを見つけることができなかった場合。
可
TLDファイルのfunction-signature要素で定義したメソッドを見つけることができなかった場合。
可
TLDファイルのfunction-signature要素で定義したparameterクラスのロード,またはfunction-class要素で指定したクラスへのアクセス時に例外が発生した場合。
可
TLDファイルのtype要素で定義したクラスを見つけることができなかった場合。
可
TLDファイルのtype要素で定義したクラスのロードで例外が発生した場合。
可
-