Я пытаюсь создать свой собственный ответ для всех типов RestClientResponseException в моем приложении Spring Boot.
Пользовательское исключение, созданное из класса контроллера:
throw new HealthCheckRestException(ex.getResponseBodyAsString());
Мой класс ExceptionHandler выглядит следующим образом:
@Order(Ordered.HIGHEST_PRECEDENCE)
@EnableWebMvc
@ControllerAdvice
public class AvailExceptionHandler {
private static final Logger logger = Logger.getLogger(AvailExceptionHandler.class);
@ExceptionHandler(value=HealthCheckRestException.class)
public AvailResponse handleHttpErrorResponse(final HealthCheckRestException ex, final HttpServletRequest request){
logger.error("RestClientException is thrown from HealthCheck API: with status :"
+ ex.getStatusText() + " and exception : "+ ex.getMessage());
return new AvailResponse(AvailStatus.ERROR);
}
}
Я пробовал все возможные случаи, такие как:
1) Trying @ExceptionHandler inside the controller class
2) Including @ControllerAdvice(basePackages = "com.org.availabillity.utilities") to scan for specific packages where the controller is defined.
3) Using @Order(Ordered.HIGHEST_PRECEDENCE) to set precedence
4) Using @RestControllerAdvice
Кажется, ничего не перехватывается после создания исключения и вызова метода, аннотированного с помощью @ExceptionHandler
Застрял на некоторое время на этом и нужна помощь. Очень ценю вашу помощь в этом.
I am using spring-web-5.0.6.RELEASE