Я довольно новичок в домене Java/Spring, и я пытаюсь использовать @controllerAdvice в моем приложении Spring Boot. CONTROLLERADVICE завоевывает исключение, но не показывает мой пользовательский ответ.ResponseEntity response = new ResponseEntity(HttpStatus.OK);
try {
response = restTemplate.exchange(url, HttpMethod.GET, entity, MyClass.class);
} catch (HttpClientErrorException ex) {
throw ex;
}catch (HttpServerErrorException ex) {
logger.debug(ex.getMessage() + " Server Status Code - " + ex.getStatusCode());
}
catch(Exception ex) {
logger.debug(ex.getMessage() + " Generic Exception ");
}
< /code>
Ниже приведен @ControllerAdvice < /strong> < /p>
@ControllerAdvice
public class GlobalExceptionHandler extends Exception {
@ExceptionHandler(HttpClientErrorException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ErrorResponse errorHandle(HttpClientErrorException ex) {
String responseBody = ex.getResponseBodyAsString();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
ErrorResponse errorResponse = new ErrorResponse();
try {
errorResponse = mapper.readValue(responseBody, ErrorResponse.class);
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return errorResponse;
}
}
< /code>
и Другие классы < /strong> < /p>
@JsonIgnoreProperties
public class ErrorResponse {
@JsonProperty("error")
public Error error;
@JsonProperty("version")
public String version;
}
public class Error {
@JsonProperty("code")
public String Code;
@JsonProperty("message")
public String Message;
public String getCode() {
return Code;
}
public void setCode(String code) {
Code = code;
}
public String getMessage() {
return Message;
}
public void setMessage(String message) {
Message = message;
}
}
< /code>
Ошибка, которую я получаю при использовании postman < /strong> < /p>
{
"timestamp": "2019-11-20T05:42:24.126+0000",
"status": 404,
"error": "Not Found",
"message": "400 Bad Request",
"path": "myApi/somecontroller"
}
< /code>
А ошибка, которую я получаю в браузере < /strong>, заключается в следующем < /p>
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Nov 19 23:40:26 CST 2019
There was an unexpected error (type=Not Found, status=404).
400 Bad Request
< /code>
Любая идея /предложение, почему такое поведение? Я ожидал представления JSON Class ErrorResponse.
update
Подробнее здесь: https://stackoverflow.com/questions/589 ... -is-thrown
Spring Boot не показывает пользовательскую ошибку, когда исключение брошено ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Spring Boot не показывает пользовательскую ошибку, когда исключение брошено
Anonymous » » в форуме JAVA - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring boot не показывает пользовательскую ошибку при возникновении исключения
Anonymous » » в форуме JAVA - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring boot не показывает пользовательскую ошибку при возникновении исключения
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring boot не показывает пользовательскую ошибку при возникновении исключения
Anonymous » » в форуме JAVA - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Spring boot не показывает пользовательскую ошибку при возникновении исключения
Anonymous » » в форуме JAVA - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-