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)
HttpRequestHandler
handle
in interface Handler<HttpRequest,HttpResponse>
handle
in interface HttpRequestHandler
request
- HTTPリクエストオブジェクトcontext
- サーバサイド実行コンテキストオブジェクトprotected void finishResponse(HttpRequest request, HttpResponse response, ExecutionContext context)
request
- リクエストresponse
- レスポンスcontext
- コンテキストprotected void writeResponse(HttpResponse response, ServletExecutionContext context)
response
- HttpResponse
context
- ServletExecutionContext
protected void writeHeaders(HttpResponse response, javax.servlet.http.HttpServletResponse nativeResponse)
HttpResponse
内のヘッダー情報を、HttpServletResponse
に対して書き込む。response
- HttpResponse
nativeResponse
- HttpServletResponse
protected 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