Я пытаюсь покрыть все остальные вызовы шаблонов в моем классе для обработки исключений.Использование пользовательской обработки исключений с обработчиком ошибок в приложении весенней загрузки.
Для этого я создал bean-компонент шаблона отдыха в config и установил в нем обработчик ошибок для пользовательского класса обработчика ошибок, который я создал с extends DefaultResponseErrorHandler.
public class BaseConfig {
@Bean
@Primary
RestTemplate restTemplate(@Autowired RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder.errorHandler(new IPSRestErrorHandler()).build();
}
}
@Component
public class IPSRestErrorHandler extends DefaultResponseErrorHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(IPSRestErrorHandler.class);
@Override
public void handleError(ClientHttpResponse response) throws IOException {
if (response.getStatusCode()
.series() == HttpStatus.Series.SERVER_ERROR) {
LOGGER.error("Server error with exception code : "+response.getStatusCode()+" with message : "+response.getStatusText());
throw ExceptionUtils.newRunTimeException("Server error with exception code : "+response.getStatusCode()+" with message : "+response.getStatusText());
} else if (response.getStatusCode()
.series() == HttpStatus.Series.CLIENT_ERROR) {
LOGGER.error("Client error with exception code : "+response.getStatusCode()+" with message : "+response.getStatusText());
throw ExceptionUtils.newRunTimeException("Client error with exception code : "+response.getStatusCode()+" with message : "+response.getStatusText());
} else {
LOGGER.error("Unknown HttpStatusCode with exception code : "+response.getStatusCode()+" with message : "+response.getStatusText());
throw ExceptionUtils.newRunTimeException("Unknown HttpStatusCode with exception code : "+response.getStatusCode()+" with message :"+response.getStatusText());
}
}
}
public class ServicingPlatformSteps {
@Autowired
private RestTemplate restTemplate;
private ResponseEntity callServicingPlatformAPI(RemittanceV2Input inputClass) {
ResponseEntity entity = null;
entity = restTemplate.exchange(builder.build().encode().toUri(),
org.springframework.http.HttpMethod.POST, httpEntity, typeRef);
return entity;
}
Здесь я ожидаю, что когда вызывается метод restTemplate.exchange и он выдает какое-то исключение, то должен вызываться мой IPSRestErrorHandler.Но обработчик ошибок не вызывается.Пока я получаю этот экземпляр restTemplate с информацией об обработчике ошибок.
Не могли бы вы мне помочь, почему не вызывается обработчик ошибок?