Class JaxRsResponseHandler

java.lang.Object
nablarch.fw.jaxrs.JaxRsResponseHandler
All Implemented Interfaces:
Handler<HttpRequest,HttpResponse>, HttpRequestHandler

public class JaxRsResponseHandler extends Object implements HttpRequestHandler
JAX-RS用のレスポンスを返却するハンドラ。

このハンドラでは、後続のハンドラから戻されたHttpResponseの内容を、クライアントへのレスポンスとして書き込む。 後続のハンドラで例外が発生した場合には、ErrorResponseBuilderを使用してエラー用のレスポンスを作成し、クライアントへのレスポンスとして書き込む。

後続のハンドラ及びErrorResponseBuilderHttpResponseを生成する際には、レスポンスヘッダーも含めて設定する必要がある。 このハンドラでは、レスポンスヘッダーを自動的に設定するようなことはしない。

Author:
Hisaaki Shioiri
  • Constructor Details

    • JaxRsResponseHandler

      public JaxRsResponseHandler()
  • Method Details

    • handle

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

      protected void finishResponse(HttpRequest request, HttpResponse response, ExecutionContext context)
      レスポンスを仕上げる。
      Parameters:
      request - リクエスト
      response - レスポンス
      context - コンテキスト
    • writeResponse

      protected void writeResponse(HttpResponse response, ServletExecutionContext context)
      レスポンスを書き込む。
      Parameters:
      response - HttpResponse
      context - ServletExecutionContext
    • writeHeaders

      protected void writeHeaders(HttpResponse response, jakarta.servlet.http.HttpServletResponse nativeResponse)
      レスポンスヘッダーを書き込む。

      HttpResponse内のヘッダー情報を、HttpServletResponseに対して書き込む。

      Parameters:
      response - HttpResponse
      nativeResponse - HttpServletResponse
    • writeBody

      protected static void writeBody(InputStream in, jakarta.servlet.http.HttpServletResponse nativeRes) throws IOException
      メッセージボディの内容をクライアントに送信する。
      Parameters:
      in - 入力ストリームの内容
      nativeRes - サーブレットレスポンス
      Throws:
      IOException - ソケットI/Oにおけるエラー
    • setErrorResponseBuilder

      public void setErrorResponseBuilder(ErrorResponseBuilder errorResponseBuilder)
      エラーレスポンスビルダーを設定する。

      デフォルト実装であるErrorResponseBuilderを差し替えたい場合に拡張クラスを設定する。

      Parameters:
      errorResponseBuilder - エラーレスポンスビルダー
    • setErrorLogWriter

      public void setErrorLogWriter(JaxRsErrorLogWriter errorLogWriter)
      エラーログライターを設定する。

      デフォルト実装であるJaxRsErrorLogWriterを差し替えたい場合に拡張クラスを設定する。

      Parameters:
      errorLogWriter - エラーログライター
    • setResponseFinishers

      public void setResponseFinishers(List<ResponseFinisher> responseFinishers)
      レスポンスフィニッシャーを設定する。
      Parameters:
      responseFinishers - レスポンスフィニッシャー