Package nablarch.fw.jaxrs
Class JaxRsResponseHandler
java.lang.Object
nablarch.fw.jaxrs.JaxRsResponseHandler
- All Implemented Interfaces:
Handler<HttpRequest,,HttpResponse> HttpRequestHandler
JAX-RS用のレスポンスを返却するハンドラ。
このハンドラでは、後続のハンドラから戻された
HttpResponseの内容を、クライアントへのレスポンスとして書き込む。
後続のハンドラで例外が発生した場合には、ErrorResponseBuilderを使用してエラー用のレスポンスを作成し、クライアントへのレスポンスとして書き込む。
後続のハンドラ及びErrorResponseBuilderでHttpResponseを生成する際には、レスポンスヘッダーも含めて設定する必要がある。
このハンドラでは、レスポンスヘッダーを自動的に設定するようなことはしない。- Author:
- Hisaaki Shioiri
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidfinishResponse(HttpRequest request, HttpResponse response, ExecutionContext context) レスポンスを仕上げる。handle(HttpRequest request, ExecutionContext context) HTTPリクエストに対する処理を実行する。voidsetErrorLogWriter(JaxRsErrorLogWriter errorLogWriter) エラーログライターを設定する。voidsetErrorResponseBuilder(ErrorResponseBuilder errorResponseBuilder) エラーレスポンスビルダーを設定する。voidsetResponseFinishers(List<ResponseFinisher> responseFinishers) レスポンスフィニッシャーを設定する。protected static voidwriteBody(InputStream in, jakarta.servlet.http.HttpServletResponse nativeRes) メッセージボディの内容をクライアントに送信する。protected voidwriteHeaders(HttpResponse response, jakarta.servlet.http.HttpServletResponse nativeResponse) レスポンスヘッダーを書き込む。protected voidwriteResponse(HttpResponse response, ServletExecutionContext context) レスポンスを書き込む。
-
Constructor Details
-
JaxRsResponseHandler
public JaxRsResponseHandler()
-
-
Method Details
-
handle
Description copied from interface:HttpRequestHandlerHTTPリクエストに対する処理を実行する。- Specified by:
handlein interfaceHandler<HttpRequest,HttpResponse> - Specified by:
handlein interfaceHttpRequestHandler- Parameters:
request- HTTPリクエストオブジェクトcontext- サーバサイド実行コンテキストオブジェクト- Returns:
- HTTPレスポンスオブジェクト
-
finishResponse
レスポンスを仕上げる。- Parameters:
request- リクエストresponse- レスポンスcontext- コンテキスト
-
writeResponse
レスポンスを書き込む。- Parameters:
response-HttpResponsecontext-ServletExecutionContext
-
writeHeaders
protected void writeHeaders(HttpResponse response, jakarta.servlet.http.HttpServletResponse nativeResponse) レスポンスヘッダーを書き込む。HttpResponse内のヘッダー情報を、HttpServletResponseに対して書き込む。- Parameters:
response-HttpResponsenativeResponse-HttpServletResponse
-
writeBody
protected static void writeBody(InputStream in, jakarta.servlet.http.HttpServletResponse nativeRes) throws IOException メッセージボディの内容をクライアントに送信する。- Parameters:
in- 入力ストリームの内容nativeRes- サーブレットレスポンス- Throws:
IOException- ソケットI/Oにおけるエラー
-
setErrorResponseBuilder
エラーレスポンスビルダーを設定する。 デフォルト実装であるErrorResponseBuilderを差し替えたい場合に拡張クラスを設定する。- Parameters:
errorResponseBuilder- エラーレスポンスビルダー
-
setErrorLogWriter
エラーログライターを設定する。 デフォルト実装であるJaxRsErrorLogWriterを差し替えたい場合に拡張クラスを設定する。- Parameters:
errorLogWriter- エラーログライター
-
setResponseFinishers
レスポンスフィニッシャーを設定する。- Parameters:
responseFinishers- レスポンスフィニッシャー
-