public class ExtractingResponseErrorHandler extends DefaultResponseErrorHandler
HttpMessageConverters
を使用して HTTP エラーレスポンスを RestClientExceptions
に変換する ResponseErrorHandler
の実装。 このエラーハンドラーを使用するには、ステータスマッピングまたはシリーズマッピング、あるいはその両方を指定する必要があります。これらのマッピングのいずれかが特定の ClientHttpResponse
のステータスコードと一致する場合、DefaultResponseErrorHandler.hasError(ClientHttpResponse)
は true
を返し、DefaultResponseErrorHandler.handleError(ClientHttpResponse)
は構成されたメッセージコンバーターを使用してレスポンスを RestClientException
のマップされたサブクラスに変換しようとします。ステータスマッピングはシリーズマッピングよりも優先されることに注意してください。
一致しない場合、このエラーハンドラーはデフォルトで DefaultResponseErrorHandler
の動作になります。HttpStatus.Series#CLIENT_ERROR
および / または HttpStatus.Series#SERVER_ERROR
から null
へのシリーズマッピングを指定することにより、このデフォルトの動作を上書きできることに注意してください。
RestTemplate.setErrorHandler(ResponseErrorHandler)
コンストラクターと説明 |
---|
ExtractingResponseErrorHandler() 新しい空の ExtractingResponseErrorHandler を作成します。 |
ExtractingResponseErrorHandler(ListSE<HttpMessageConverter<?>> messageConverters) 指定された HttpMessageConverter インスタンスで新しい ExtractingResponseErrorHandler を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | handleError(ClientHttpResponse response, HttpStatus statusCode) 解決されたステータスコードに基づいてエラーを処理します。 |
protected boolean | hasError(HttpStatus statusCode) DefaultResponseErrorHandler.hasError(ClientHttpResponse) から呼び出されるテンプレートメソッド。 |
void | setMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters) この抽出プログラムで使用するメッセージコンバーターを設定します。 |
void | setSeriesMapping(MapSE<HttpStatus.Series, ClassSE<? extends RestClientException>> seriesMapping) HTTP ステータスシリーズから RestClientException サブクラスへのマッピングを設定します。 |
void | setStatusMapping(MapSE<HttpStatus, ClassSE<? extends RestClientException>> statusMapping) HTTP ステータスコードから RestClientException サブクラスへのマッピングを設定します。 |
getCharset, getHttpStatusCode, getResponseBody, handleError, hasError, hasError
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
handleError
public ExtractingResponseErrorHandler()
ExtractingResponseErrorHandler
を作成します。 このコンストラクターを使用する場合は、setMessageConverters(List)
を呼び出す必要があることに注意してください。
public ExtractingResponseErrorHandler(ListSE<HttpMessageConverter<?>> messageConverters)
HttpMessageConverter
インスタンスで新しい ExtractingResponseErrorHandler
を作成します。messageConverters
- 使用するメッセージコンバーター public void setMessageConverters(ListSE<HttpMessageConverter<?>> messageConverters)
public void setStatusMapping(MapSE<HttpStatus,ClassSE<? extends RestClientException>> statusMapping)
RestClientException
サブクラスへのマッピングを設定します。このマッピングが特定の ClientHttpResponse
のステータスコードと一致する場合、DefaultResponseErrorHandler.hasError(ClientHttpResponse)
は true
を返し、DefaultResponseErrorHandler.handleError(ClientHttpResponse)
は構成されたメッセージコンバーターを使用してレスポンスを RestClientException
のマップされたサブクラスに変換しようとします。public void setSeriesMapping(MapSE<HttpStatus.Series,ClassSE<? extends RestClientException>> seriesMapping)
RestClientException
サブクラスへのマッピングを設定します。このマッピングが特定の ClientHttpResponse
のステータスコードと一致する場合、DefaultResponseErrorHandler.hasError(ClientHttpResponse)
は true
を返し、DefaultResponseErrorHandler.handleError(ClientHttpResponse)
は構成されたメッセージコンバーターを使用してレスポンスを RestClientException
のマップされたサブクラスに変換しようとします。protected boolean hasError(HttpStatus statusCode)
DefaultResponseErrorHandler
DefaultResponseErrorHandler.hasError(ClientHttpResponse)
から呼び出されるテンプレートメソッド。 デフォルトの実装は HttpStatus.isError()
をチェックします。サブクラスでオーバーライドできます。
DefaultResponseErrorHandler
の hasError
statusCode
- 列挙値としての HTTP ステータスコード true
。それ以外の場合は false
HttpStatus.isError()
public void handleError(ClientHttpResponse response, HttpStatus statusCode) throws IOExceptionSE
DefaultResponseErrorHandler
デフォルトの実装は、4xx の範囲のエラーの場合は HttpClientErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)
に委譲し、5xx の範囲のエラーの場合は HttpServerErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)
に委譲するか、そうでなければ UnknownHttpStatusCodeException
を発生させます。
DefaultResponseErrorHandler
の handleError
IOExceptionSE
HttpClientErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)
, HttpServerErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)