HTTP 409 Ошибка при использовании RestTemplate для использования двух RESTful API - решено - PullRequest
0 голосов
/ 19 сентября 2019

Решено! У одного из API было некоторое ограничение на интервал запроса, т. Е. Минимум 60 секунд.Я пытался вызвать API быстрее, чем ожидалось.

Однако API должен возвращать ошибку HTTP 429 вместо 409.

У меня есть простой проект Spring Boot с запланированной задачей следующим образом:

@Autowired
private RestTemplate restTemplate;

@Bean
public RestTemplate restTemplate(RestTemplateBuilder builder) {
    return builder.basicAuthentication(username, password).build();
}


@Scheduled(fixedRate = 10000)
public void getData() throws Exception {

    String realtime_data = restTemplate.getForObject(realtime_addr, String.class);
    log.info(realtime_data);
    String legal_data = restTemplate.getForObject(legal_addr, String.class);
    log.info(legal_data.substring(0,200));

У меня естьдва разных API с разными адресами, и я хочу их использовать.

Но в итоге я сталкиваюсь со следующим исключением:

org.springframework.web.client.HttpClientErrorException$ Конфликт: 409 Конфликт в org.springframework.web.client.HttpClientErrorException.create (HttpClientErrorException.java:91) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в орг.springframework.web.client.DefaultResponseErrorHandler.handleError (DefaultResponseErrorHandler.java:122) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в org.springframework.web.client.ReponserE.java: 102) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в org.springframework.web.client.ResponseErrorHandler.handleError (ResponseErrorHandler.java:63) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в org.springframework.web.client.RestTemplate.handleResponse (RestTemplate.java:778) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в org.springframework.web.client.RestTemplate.doExecute (RestTemplate.java:736) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в org.springframework.web.client.RestTemplate.execute (RestTemplate.java:670) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] at org.springframework.web.client.RestTemplate.getForObject (RestTemplate.java: 311) ~ [spring-web-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в ir.pisys.rest.Schedule.reportCurrentTime (Schedule.java:64) ~ [classes /: na] на солнце.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) ~ [na: 1.8.0_221] в sun.reflect.NativeMethodAccessorImpl.invoke (неизвестный источник) ~ [na: 1.8.0_221] в sun.reflect.DelegatingMethodAccessorImpl~ [na: 1.8.0_221] на java.lang.reflect.Method.invoke (неизвестный источник) ~ [na: 1.8.0_221] на org.springframework.scheduling.support.ScheduledMethodRunnable.выполнить (ScheduledMethodRunnable.java:84) ~ [spring-context-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run (DelegatingErrorHandlingRunnable.java:)-context-5.1.9.RELEASE.jar: 5.1.9.RELEASE] в java.util.concurrent.Executors $ RunnableAdapter.call (Неизвестный источник) [na: 1.8.0_221] в java.util.concurrent.FutureTask.runAndReset(Неизвестный источник) [na: 1.8.0_221] в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.access $ 301 (Неизвестный источник) [na: 1.8.0_221] в java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask (неизвестно. Источник неизвестен) [na: 1.8.0_221] в java.util.concurrent.ThreadPoolExecutor.runWorker (неизвестный источник) [na: 1.8.0_221] в java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) [na: 1.8.0_221] at java.lang.Thread.run (неизвестный источник) [na: 1.8.0_221]

В чем проблема?

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