public class JsonErrorResponseHandler extends java.lang.Object implements HttpResponseHandler<AmazonServiceException>
Modifier and Type | Class and Description |
---|---|
private static class |
JsonErrorResponseHandler.JsonContent
Simple struct like class to hold both the raw json string content and it's parsed JsonNode
|
Modifier and Type | Field and Description |
---|---|
private JsonErrorCodeParser |
errorCodeParser |
private JsonErrorMessageParser |
errorMessageParser |
private com.fasterxml.jackson.core.JsonFactory |
jsonFactory |
private static org.apache.commons.logging.Log |
LOG |
private java.util.List<JsonErrorUnmarshaller> |
unmarshallers |
X_AMZN_REQUEST_ID_HEADER
Constructor and Description |
---|
JsonErrorResponseHandler(java.util.List<JsonErrorUnmarshaller> errorUnmarshallers,
JsonErrorCodeParser errorCodeParser,
JsonErrorMessageParser errorMessageParser,
com.fasterxml.jackson.core.JsonFactory jsonFactory) |
Modifier and Type | Method and Description |
---|---|
private AmazonServiceException |
createException(java.lang.String errorCode,
JsonErrorResponseHandler.JsonContent jsonContent)
Create an AmazonServiceException using the chain of unmarshallers.
|
private AmazonServiceException.ErrorType |
getErrorTypeFromStatusCode(int statusCode) |
private java.lang.String |
getRequestIdFromHeaders(java.util.Map<java.lang.String,java.lang.String> headers) |
AmazonServiceException |
handle(HttpResponse response)
Accepts an HTTP response object, and returns an object of type T.
|
boolean |
needsConnectionLeftOpen()
Indicates if this response handler requires that the underlying HTTP
connection not be closed automatically after the response is
handled.
|
private AmazonServiceException |
unmarshallException(java.lang.String errorCode,
JsonErrorResponseHandler.JsonContent jsonContent) |
private static final org.apache.commons.logging.Log LOG
private final java.util.List<JsonErrorUnmarshaller> unmarshallers
private final JsonErrorCodeParser errorCodeParser
private final JsonErrorMessageParser errorMessageParser
private final com.fasterxml.jackson.core.JsonFactory jsonFactory
public JsonErrorResponseHandler(java.util.List<JsonErrorUnmarshaller> errorUnmarshallers, JsonErrorCodeParser errorCodeParser, JsonErrorMessageParser errorMessageParser, com.fasterxml.jackson.core.JsonFactory jsonFactory)
public boolean needsConnectionLeftOpen()
HttpResponseHandler
For example, if the object returned by this response handler manually
manages the stream of data from the HTTP connection, and doesn't read all
the data from the connection in the HttpResponseHandler.handle(HttpResponse)
method,
this method can be used to prevent the underlying connection from being
prematurely closed.
Response handlers should use this option very carefully, since it means that resource cleanup is no longer handled automatically, and if neglected, can result in the client runtime running out of resources for new HTTP connections.
needsConnectionLeftOpen
in interface HttpResponseHandler<AmazonServiceException>
public AmazonServiceException handle(HttpResponse response) throws java.lang.Exception
HttpResponseHandler
handle
in interface HttpResponseHandler<AmazonServiceException>
response
- The HTTP response to handle, as received from an AWS service.java.lang.Exception
- If any problems are encountered handling the response.private AmazonServiceException createException(java.lang.String errorCode, JsonErrorResponseHandler.JsonContent jsonContent)
errorCode
- Error code to find an appropriate unmarshallerjsonContent
- JsonContent of HTTP responseprivate AmazonServiceException unmarshallException(java.lang.String errorCode, JsonErrorResponseHandler.JsonContent jsonContent)
private AmazonServiceException.ErrorType getErrorTypeFromStatusCode(int statusCode)
private java.lang.String getRequestIdFromHeaders(java.util.Map<java.lang.String,java.lang.String> headers)