Spring boot не показывает пользовательскую ошибку при возникновении исключенияJAVA

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

Сообщение Anonymous »

Я новичок в области Java/Spring и пытаюсь использовать @ControllerAdvice в своем приложении Spring Boot. ControllerAdvice перехватывает исключение, но не отображает мой собственный ответ.

ниже приведен снимок RestController, который выдает исключение р>

Код: Выделить всё

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 ");
}
далее следует @ControllerAdvice

Код: Выделить всё

@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;
}
}
и другие классы

Код: Выделить всё

@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;
}

}
при использовании POSTMAN я получаю ошибку

Код: Выделить всё

{
"timestamp": "2019-11-20T05:42:24.126+0000",
"status": 404,
"error": "Not Found",
"message": "400 Bad Request",
"path": "myApi/somecontroller"
}
и ошибка, которую я получаю в браузере, выглядит следующим образом

Код: Выделить всё

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
есть идеи/предложения, почему такое поведение? Я ожидал JSON-представление класса ErrorResponse.

Обновить

Изображение


Подробнее здесь: https://stackoverflow.com/questions/589 ... -is-thrown
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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