"status-code").item(0).getTextContent(); failure.setStatusCode(Integer.parseInt(statusCode)); failure.setStatusString(doc .getElementsByTagNameNS(JerseyServices.ERROR_NS, "status").item(0).getTextContent());
failure.setStatusString( statuses.item(0).getTextContent() );
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(); } }
@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; } }
@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; } }
failure.setStatusCode(httpStatus); failure.setMessageString(""); failure.setStatusString("Not Found"); failure.setMessageCode("UNKNOWN"); failure.setMessageString("Server (not a REST instance?) did not respond with an expected REST Error message."); failure.setStatusString("UNKNOWN"); failure.setStatusString("Failed Auth");
failure = new FailedRequest(); failure.setMessageString("Unauthorized"); failure.setStatusString("Failed Auth"); } else if (statusCode == STATUS_NOT_FOUND) { ResourceNotFoundException ex = failure == null ? new ResourceNotFoundException("Could not " + method + " at " + endpoint) : 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; }