springframework.web.client.ResourceAccessException: ошибка ввода-вывода при GET - через 2 минуты - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть проблема с пружинным шаблоном. Один вызов API от одного из наших клиентов может занять более 2 минут для ответа. Проблема в том, что я не могу найти свойства ie, позволяющего шаблону отдыха ждать более 2 минут.

Вот мой код:

static final int WAIT = 500000;

@Bean
public RestOperations proxyTemplate() {
    var factory = new HttpComponentsClientHttpRequestFactory();
    var client = HttpClientBuilder.create()
            .setRedirectStrategy(new LaxRedirectStrategy())
            .disableAutomaticRetries()
            .disableCookieManagement()
            .setConnectionTimeToLive(WAIT, TimeUnit.MILLISECONDS)
            .setDefaultRequestConfig(custom()
                    .setConnectTimeout(WAIT)
                    .setConnectionRequestTimeout(WAIT)
                    .setSocketTimeout(WAIT)
                    .build())
            .build();

    factory.setHttpClient(client);
    factory.setConnectTimeout(WAIT);
    factory.setConnectionRequestTimeout(WAIT);
    factory.setReadTimeout(WAIT);
    return new RestTemplate(factory);

Поэтому приложение должно ждать 500 000 мс (намного дольше 2 минут). Я установил Mockserver, этот ответ через 2 минуты и 5 секунд. Но я получаю всегда через 2 минуты это исключение, выброшенное из Spring-Framework:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:9090/longRequest": localhost:9090 failed to respond; nested exception is org.apache.http.NoHttpResponseException: localhost:9090 failed to respond

И

Caused by: org.apache.http.NoHttpResponseException: localhost:9090 failed to respond

Любой намек, как его настроить ???? я ищу с 3 дней для решения.

...