Class HttpErrorHandler

java.lang.Object
nablarch.fw.web.handler.HttpErrorHandler
All Implemented Interfaces:
Handler<HttpRequest,HttpResponse>, HttpRequestHandler
Direct Known Subclasses:
HttpMessagingErrorHandler

public class HttpErrorHandler extends Object implements HttpRequestHandler
共通エラーハンドラー。
 HttpResponse/HttpErrorResponse のHTTPエラーコードに対応した
 エラー画面に遷移させる。
 また、実行時例外を捕捉し、システムエラー画面に遷移させる。
 
Author:
Iwauo Tajima <iwauo@tis.co.jp>
  • Field Details

    • writeFailureLogPattern

      protected Pattern writeFailureLogPattern
      Result.Errorの中で障害通知ログを出力する対象を表すステータスコード
  • Constructor Details

    • HttpErrorHandler

      public HttpErrorHandler()
  • Method Details

    • handle

      public HttpResponse handle(HttpRequest req, ExecutionContext ctx)
      HTTPリクエストに対する処理を実行する。
      Specified by:
      handle in interface Handler<HttpRequest,HttpResponse>
      Specified by:
      handle in interface HttpRequestHandler
      Parameters:
      req - HTTPリクエストオブジェクト
      ctx - サーバサイド実行コンテキストオブジェクト
      Returns:
      HTTPレスポンスオブジェクト
    • setDefaultPage

      public HttpErrorHandler setDefaultPage(String statusCode, String contentPath)
      レスポンスステータスコードごとのデフォルトページを設定する。 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

      public HttpErrorHandler setDefaultPages(Map<String,String> defaultPages)
      レスポンスステータスコードごとのデフォルトページを設定する。
      Parameters:
      defaultPages - デフォルトページ設定
      Returns:
      このオブジェクト自体
    • getDefaultPageFor

      public ResourceLocator getDefaultPageFor(int statusCode)
      指定されたステータスコードに対するデフォルトページのコンテンツパスを返す。
      Parameters:
      statusCode - ステータスコード
      Returns:
      デフォルト画面のコンテンツパス
    • setWriteFailureLogPattern

      public void setWriteFailureLogPattern(String writeFailureLogPattern)
      handle(nablarch.fw.web.HttpRequest, nablarch.fw.ExecutionContext)で、Result.Errorを補足した際に、 障害通知ログを出力する必要のあるステータスコードを正規表現で設定する。 ここで設定した正規表現が、Result.Error.getStatusCode()にマッチした場合のみ、 障害通知ログが出力され障害として検知される。 なお、本設定を省略した場合のデフォルト動作では、5([1-9][0-9]|0[012456789])に一致するステータスコードが障害通知ログの出力対象となる。
      Parameters:
      writeFailureLogPattern - 障害通知対象のステータスコードを表す正規表現