Class ExtractingResponseErrorHandler
- All Implemented Interfaces:
- ResponseErrorHandler
ResponseErrorHandler that uses HttpMessageConverters to convert HTTP error responses to RestClientExceptions.
 To use this error handler, you must specify a
 status mapping and/or a
 series mapping. If either of these mappings has a match
 for the status code of a given
 ClientHttpResponse, DefaultResponseErrorHandler.hasError(ClientHttpResponse) will return
 true, and DefaultResponseErrorHandler.handleError(ClientHttpResponse) will attempt to use the
 configured message converters to convert the response
 into the mapped subclass of RestClientException. Note that the
 status mapping takes precedence over
 series mapping.
 
If there is no match, this error handler will default to the behavior of
 DefaultResponseErrorHandler. Note that you can override this default behavior
 by specifying a series mapping from
 HttpStatus.Series#CLIENT_ERROR and/or HttpStatus.Series#SERVER_ERROR
 to null.
- Since:
- 5.0
- Author:
- Simon Galperin, Arjen Poutsma
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionCreate a new, emptyExtractingResponseErrorHandler.ExtractingResponseErrorHandler(List<HttpMessageConverter<?>> messageConverters) Create a newExtractingResponseErrorHandlerwith the givenHttpMessageConverterinstances.
- 
Method SummaryModifier and TypeMethodDescriptionvoidhandleError(ClientHttpResponse response, HttpStatus statusCode) Handle the error based on the resolved status code.protected booleanhasError(HttpStatus statusCode) Template method called fromDefaultResponseErrorHandler.hasError(ClientHttpResponse).voidsetMessageConverters(List<HttpMessageConverter<?>> messageConverters) Set the message converters to use by this extractor.voidsetSeriesMapping(Map<HttpStatus.Series, Class<? extends RestClientException>> seriesMapping) Set the mapping from HTTP status series toRestClientExceptionsubclass.voidsetStatusMapping(Map<HttpStatus, Class<? extends RestClientException>> statusMapping) Set the mapping from HTTP status code toRestClientExceptionsubclass.Methods inherited from class org.springframework.web.client.DefaultResponseErrorHandlergetCharset, getResponseBody, handleError, hasError, hasErrorMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.web.client.ResponseErrorHandlerhandleError
- 
Constructor Details- 
ExtractingResponseErrorHandlerpublic ExtractingResponseErrorHandler()Create a new, emptyExtractingResponseErrorHandler.Note that setMessageConverters(List)must be called when using this constructor.
- 
ExtractingResponseErrorHandlerCreate a newExtractingResponseErrorHandlerwith the givenHttpMessageConverterinstances.- Parameters:
- messageConverters- the message converters to use
 
 
- 
- 
Method Details- 
setMessageConvertersSet the message converters to use by this extractor.
- 
setStatusMappingSet the mapping from HTTP status code toRestClientExceptionsubclass. If this mapping has a match for the status code of a givenClientHttpResponse,DefaultResponseErrorHandler.hasError(ClientHttpResponse)will returntrueandDefaultResponseErrorHandler.handleError(ClientHttpResponse)will attempt to use the configured message converters to convert the response into the mapped subclass ofRestClientException.
- 
setSeriesMappingpublic void setSeriesMapping(Map<HttpStatus.Series, Class<? extends RestClientException>> seriesMapping) Set the mapping from HTTP status series toRestClientExceptionsubclass. If this mapping has a match for the status code of a givenClientHttpResponse,DefaultResponseErrorHandler.hasError(ClientHttpResponse)will returntrueandDefaultResponseErrorHandler.handleError(ClientHttpResponse)will attempt to use the configured message converters to convert the response into the mapped subclass ofRestClientException.
- 
hasErrorDescription copied from class:DefaultResponseErrorHandlerTemplate method called fromDefaultResponseErrorHandler.hasError(ClientHttpResponse).The default implementation checks HttpStatus.isError(). Can be overridden in subclasses.- Overrides:
- hasErrorin class- DefaultResponseErrorHandler
- Parameters:
- statusCode- the HTTP status code as enum value
- Returns:
- trueif the response indicates an error;- falseotherwise
- See Also:
 
- 
handleErrorDescription copied from class:DefaultResponseErrorHandlerHandle the error based on the resolved status code.The default implementation delegates to HttpClientErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)for errors in the 4xx range, toHttpServerErrorException.create(org.springframework.http.HttpStatus, java.lang.String, org.springframework.http.HttpHeaders, byte[], java.nio.charset.Charset)for errors in the 5xx range, or otherwise raisesUnknownHttpStatusCodeException.- Overrides:
- handleErrorin class- DefaultResponseErrorHandler
- Throws:
- IOException
- See Also:
- 
- 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)
 
 
 
-