.getElementsByTagNameNS(JerseyServices.ERROR_NS, "message-code").item(0).getTextContent()); failure.setMessageString(doc .getElementsByTagNameNS(JerseyServices.ERROR_NS, "message").item(0).getTextContent()); } catch (ParserConfigurationException e) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Unable to parse server error."); } catch (SAXException e) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Unable to parse server error details"); } catch (IOException e) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server");
@SuppressWarnings("unchecked") public FailedRequest parseFailedRequest(int httpStatus, InputStream content) { FailedRequest failure = new FailedRequest(); ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally Map<String, Map<String, String>> errorData; try { errorData = mapper.readValue(content, Map.class); Map<String, String> errorBody = errorData.get("error"); failure.setStatusCode(httpStatus); failure.setStatusString(errorBody.get("status")); failure.setMessageCode(errorBody.get("message-code")); failure.setMessageString(errorBody.get("message")); } catch (JsonParseException e1) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server"); } catch (JsonMappingException e1) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server"); } catch (IOException e1) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server"); } return failure; } }
@SuppressWarnings("unchecked") @Override public FailedRequest parseFailedRequest(int httpStatus, InputStream content) { FailedRequest failure = new FailedRequest(); ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally Map<String, Map<String, String>> errorData; try { errorData = mapper.readValue(content, Map.class); Map<String, String> errorBody = errorData.get("errorResponse"); failure.setStatusCode(httpStatus); failure.setStatusString(errorBody.get("status")); failure.setMessageCode(errorBody.get("messageCode")); failure.setMessageString(errorBody.get("message")); failure.setStackTrace(errorBody.get("stackTrace")); } catch (JsonParseException e1) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server"); } catch (JsonMappingException e1) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server"); } catch (IOException e1) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server"); } return failure; } }
failure.setMessageString(formatString); } else { NodeList messageStrings = doc.getElementsByTagNameNS(ERROR_NS, "message"); if ( messageStrings != null && messageStrings.getLength() > 0 ) { failure.setMessageString( messageStrings.item(0).getTextContent() ); failure.setMessageString("Request failed. Unable to parse server error."); } catch (SAXException e) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Unable to parse server error details"); } catch (IOException e) { failure.setStatusCode(httpStatus); failure.setMessageString("Request failed. Error body not received from server");
private FailedRequest extractErrorFields(Response response) { if ( response == null ) return null; try { if ( response.code() == STATUS_UNAUTHORIZED ) { FailedRequest failure = new FailedRequest(); failure.setMessageString("Unauthorized"); failure.setStatusString("Failed Auth"); return failure; } String responseBody = getEntity(response.body(), String.class); InputStream is = new ByteArrayInputStream(responseBody.getBytes("UTF-8")); FailedRequest handler = FailedRequest.getFailedRequest(response.code(), response.header(HEADER_CONTENT_TYPE), is); if ( handler.getMessage() == null ) { handler.setMessageString(responseBody); } return handler; } catch (UnsupportedEncodingException e) { throw new IllegalStateException("UTF-8 is unsupported", e); } finally { response.close(); } }
failure = new FailedRequest(); failure.setStatusCode(httpStatus); failure.setMessageString(""); failure.setStatusString("Not Found"); failure.setStatusCode(httpStatus); failure.setMessageCode("UNKNOWN"); failure.setMessageString("Server (not a REST instance?) did not respond with an expected REST Error message."); failure.setStatusString("UNKNOWN"); failure.setMessageString("Unauthorized"); failure.setStatusString("Failed Auth");
} else if ( statusCode == STATUS_UNAUTHORIZED ) { failure = new FailedRequest(); failure.setMessageString("Unauthorized"); failure.setStatusString("Failed Auth"); } else if (statusCode == STATUS_NOT_FOUND) { failure.setStatusCode(statusCode); failure.setMessageCode("UNKNOWN"); failure.setMessageString("Server did not respond with an expected Error message."); failure.setStatusString("UNKNOWN");
public static FailedRequest getFailedRequest(int httpStatus, MediaType contentType, InputStream content) { FailedRequest failure; // by default XML is supported if (contentType.equals(MediaType.APPLICATION_XML_TYPE)) { FailedRequestParser xmlParser = new FailedRequestXMLParser(); failure = xmlParser.parseFailedRequest(httpStatus, content); } else if (contentType.equals(MediaType.APPLICATION_JSON_TYPE)) { failure = jsonFailedRequest(httpStatus, content); } else { failure = new FailedRequest(); failure.setStatusCode(httpStatus); failure.setMessageCode("UNKNOWN"); failure.setMessageString("Server (not a REST instance?) did not respond with an expected REST Error message."); failure.setStatusString("UNKNOWN"); } if (failure.getStatusCode() == 401) { failure.setMessageString("Unauthorized"); failure.setStatusString("Failed Auth"); } return failure; }