Разграничение RestClientException между RestTemplate и OAuth2RestTemplate с помощью @ControllerAdvice - PullRequest
0 голосов
/ 23 января 2020

У меня есть обычный RestTemplate и OAuth2RestTemplate, который расширяет RestTemplate. У них обоих есть свои собственные квалификаторы бинов (с использованием @Qualifier).

Они оба используются в разных сервисах и выполняют свои собственные задачи. My ControllerAdvice перехватывает все ошибки в приложении.

Проблема : когда одно из них выдает исключение из-за неудачного вызова, оно вызывает исключение RestClientException, которое не позволяет мне различать, если оно был нормальный RestTemplate или OAuth2RestTemplate, который вызвал его (я знаю из трассировки стека, я, как человек, могу сказать).

Мой обработчик исключений:

@ExceptionHandler({RestClientException.class})
public ResponseEntity<String> handleRestClientException(RestClientException e, HttpServletRequest request) {
    LOG.error("One of the rest templates failed to get results", e);
    return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Stuff went wrong");
}

Желание : в этом обработчике исключений есть способ отличить их ИЛИ есть способ написать второй обработчик исключений, который бы перехватывал OAuth2.

Я не смог найти специфику c исключение либо создает цепочку, которую советник контроллера может уловить, чтобы отличить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...