@ExceptionHandler @ResponseBody public ResponseEntity<Object> handleRestClientResponseException(RestClientResponseException e, WebRequest request) { return handleExceptionInternal(e, e.getResponseBodyAsByteArray(), e.getResponseHeaders(), HttpStatus.valueOf(e.getRawStatusCode()), request); }
@ExceptionHandler @ResponseBody public ResponseEntity<Object> handleRestClientResponseException(RestClientResponseException e, WebRequest request) { return handleExceptionInternal(e, e.getResponseBodyAsByteArray(), e.getResponseHeaders(), HttpStatus.valueOf(e.getRawStatusCode()), request); }
@Override protected boolean handleException(ApiErrorHandler errorHandler, Response response, Throwable e) { if(super.handleException(errorHandler, response, e)) { return true; } if(e instanceof RestClientResponseException) { RestClientResponseException re = (RestClientResponseException)e; writeHeaders(response, re); byte[] body = re.getResponseBodyAsByteArray(); if(null != body && body.length > 0) { response.setStatus(re.getRawStatusCode()); try { response.getOutputStream().write(body); }catch (Exception e1) { log.error("Error response body, " + e.getMessage(), e); } }else { errorHandler.responseError(response, re.getRawStatusCode(), re.getMessage()); } return true; } return false; }