public class JaxRsResponseHandler extends java.lang.Object implements HttpRequestHandler
HttpResponseの内容を、クライアントへのレスポンスとして書き込む。
後続のハンドラで例外が発生した場合には、ErrorResponseBuilderを使用してエラー用のレスポンスを作成し、クライアントへのレスポンスとして書き込む。
後続のハンドラ及びErrorResponseBuilderでHttpResponseを生成する際には、レスポンスヘッダーも含めて設定する必要がある。
このハンドラでは、レスポンスヘッダーを自動的に設定するようなことはしない。| Constructor and Description |
|---|
JaxRsResponseHandler() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
finishResponse(HttpRequest request,
HttpResponse response,
ExecutionContext context)
レスポンスを仕上げる。
|
HttpResponse |
handle(HttpRequest request,
ExecutionContext context)
HTTPリクエストに対する処理を実行する。
|
void |
setErrorLogWriter(JaxRsErrorLogWriter errorLogWriter)
エラーログライターを設定する。
デフォルト実装である
JaxRsErrorLogWriterを差し替えたい場合に拡張クラスを設定する。 |
void |
setErrorResponseBuilder(ErrorResponseBuilder errorResponseBuilder)
エラーレスポンスビルダーを設定する。
デフォルト実装である
ErrorResponseBuilderを差し替えたい場合に拡張クラスを設定する。 |
void |
setResponseFinishers(java.util.List<ResponseFinisher> responseFinishers)
レスポンスフィニッシャーを設定する。
|
void |
setSetContentTypeForResponseWithNoBody(boolean setContentTypeForResponseWithNoBody)
ボディを持たないレスポンスでもContent-Typeを設定するか否かを設定する。
デフォルトはfalse。
|
protected static void |
writeBody(java.io.InputStream in,
javax.servlet.http.HttpServletResponse nativeRes)
メッセージボディの内容をクライアントに送信する。
|
protected void |
writeHeaders(HttpResponse response,
javax.servlet.http.HttpServletResponse nativeResponse)
レスポンスヘッダーを書き込む。
HttpResponse内のヘッダー情報を、HttpServletResponseに対して書き込む。 |
protected void |
writeResponse(HttpResponse response,
ServletExecutionContext context)
レスポンスを書き込む。
|
public HttpResponse handle(HttpRequest request, ExecutionContext context)
HttpRequestHandlerhandle in interface Handler<HttpRequest,HttpResponse>handle in interface HttpRequestHandlerrequest - HTTPリクエストオブジェクトcontext - サーバサイド実行コンテキストオブジェクトprotected void finishResponse(HttpRequest request, HttpResponse response, ExecutionContext context)
request - リクエストresponse - レスポンスcontext - コンテキストprotected void writeResponse(HttpResponse response, ServletExecutionContext context)
response - HttpResponsecontext - ServletExecutionContextprotected void writeHeaders(HttpResponse response, javax.servlet.http.HttpServletResponse nativeResponse)
HttpResponse内のヘッダー情報を、HttpServletResponseに対して書き込む。response - HttpResponsenativeResponse - HttpServletResponseprotected static void writeBody(java.io.InputStream in,
javax.servlet.http.HttpServletResponse nativeRes)
throws java.io.IOException
in - 入力ストリームの内容nativeRes - サーブレットレスポンスjava.io.IOException - ソケットI/Oにおけるエラーpublic void setErrorResponseBuilder(ErrorResponseBuilder errorResponseBuilder)
ErrorResponseBuilderを差し替えたい場合に拡張クラスを設定する。errorResponseBuilder - エラーレスポンスビルダーpublic void setErrorLogWriter(JaxRsErrorLogWriter errorLogWriter)
JaxRsErrorLogWriterを差し替えたい場合に拡張クラスを設定する。errorLogWriter - エラーログライターpublic void setResponseFinishers(java.util.List<ResponseFinisher> responseFinishers)
responseFinishers - レスポンスフィニッシャーpublic void setSetContentTypeForResponseWithNoBody(boolean setContentTypeForResponseWithNoBody)
setContentTypeForResponseWithNoBody - ボディを持たないレスポンスでもContent-Typeを設定する場合はtrue