Package nablarch.fw.web.handler
Class HttpErrorHandler
java.lang.Object
nablarch.fw.web.handler.HttpErrorHandler
- All Implemented Interfaces:
Handler<HttpRequest,
,HttpResponse> HttpRequestHandler
- Direct Known Subclasses:
HttpMessagingErrorHandler
共通エラーハンドラー。
HttpResponse/HttpErrorResponse のHTTPエラーコードに対応した エラー画面に遷移させる。 また、実行時例外を捕捉し、システムエラー画面に遷移させる。
- Author:
- Iwauo Tajima <iwauo@tis.co.jp>
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetDefaultPageFor
(int statusCode) 指定されたステータスコードに対するデフォルトページのコンテンツパスを返す。handle
(HttpRequest req, ExecutionContext ctx) HTTPリクエストに対する処理を実行する。setDefaultPage
(String statusCode, String contentPath) レスポンスステータスコードごとのデフォルトページを設定する。 HttpResponseオブジェクトのボディ内容(contentPath/contentBody)が設定されていない場合、 ここでステータスコード毎に設定したデフォルトページがボディとしてレスポンスされる。 設定は後から設定した内容ほど優先される。 ステータスコードには1桁分のワイルドカードとして "." を使用することができる。 設定例::setDefaultPages
(Map<String, String> defaultPages) レスポンスステータスコードごとのデフォルトページを設定する。void
setWriteFailureLogPattern
(String writeFailureLogPattern) handle(nablarch.fw.web.HttpRequest, nablarch.fw.ExecutionContext)
で、Result.Error
を補足した際に、 障害通知ログを出力する必要のあるステータスコードを正規表現で設定する。 ここで設定した正規表現が、Result.Error.getStatusCode()
にマッチした場合のみ、 障害通知ログが出力され障害として検知される。 なお、本設定を省略した場合のデフォルト動作では、5([1-9][0-9]|0[012456789])
に一致するステータスコードが障害通知ログの出力対象となる。
-
Field Details
-
writeFailureLogPattern
Result.Error
の中で障害通知ログを出力する対象を表すステータスコード
-
-
Constructor Details
-
HttpErrorHandler
public HttpErrorHandler()
-
-
Method Details
-
handle
HTTPリクエストに対する処理を実行する。- Specified by:
handle
in interfaceHandler<HttpRequest,
HttpResponse> - Specified by:
handle
in interfaceHttpRequestHandler
- Parameters:
req
- HTTPリクエストオブジェクトctx
- サーバサイド実行コンテキストオブジェクト- Returns:
- HTTPレスポンスオブジェクト
-
setDefaultPage
レスポンスステータスコードごとのデフォルトページを設定する。 HttpResponseオブジェクトのボディ内容(contentPath/contentBody)が設定されていない場合、 ここでステータスコード毎に設定したデフォルトページがボディとしてレスポンスされる。 設定は後から設定した内容ほど優先される。 ステータスコードには1桁分のワイルドカードとして "." を使用することができる。 設定例::// デフォルトページ定義 setDefaultPage("303", "file:///www/docroot/redirecting.html"); setDefaultPage("4..", "servlet://jsp/errors/userError.jsp"); setDefaultPage("5..", "servlet://jsp/errors/systemError.jsp");
デフォルトページの設定を行わない場合、 web.xmlに定義されているエラーページに遷移する。- Parameters:
statusCode
- ステータスコードのパターンcontentPath
- デフォルトページのコンテンツパス- Returns:
- このオブジェクト自体
-
setDefaultPages
レスポンスステータスコードごとのデフォルトページを設定する。- Parameters:
defaultPages
- デフォルトページ設定- Returns:
- このオブジェクト自体
-
getDefaultPageFor
指定されたステータスコードに対するデフォルトページのコンテンツパスを返す。- Parameters:
statusCode
- ステータスコード- Returns:
- デフォルト画面のコンテンツパス
-
setWriteFailureLogPattern
handle(nablarch.fw.web.HttpRequest, nablarch.fw.ExecutionContext)
で、Result.Error
を補足した際に、 障害通知ログを出力する必要のあるステータスコードを正規表現で設定する。 ここで設定した正規表現が、Result.Error.getStatusCode()
にマッチした場合のみ、 障害通知ログが出力され障害として検知される。 なお、本設定を省略した場合のデフォルト動作では、5([1-9][0-9]|0[012456789])
に一致するステータスコードが障害通知ログの出力対象となる。- Parameters:
writeFailureLogPattern
- 障害通知対象のステータスコードを表す正規表現
-