Spring Boot не показывает пользовательскую ошибку, когда исключение брошеноJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Spring Boot не показывает пользовательскую ошибку, когда исключение брошено

Сообщение Anonymous »

Я довольно новичок в домене 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»