为什么我的 RestTemplate 超时配置不起作用?

问题描述 投票:0回答:1

我需要更改 Web 服务调用的超时。 尽管在几个地方进行了配置更改,但我在 30 秒后进入超时状态。 有什么想法吗?

我的配置:

private static final Duration CUSTOM_TIMEOUT = Duration.ofMinutes(5);
...
RequestConfig config = RequestConfig.custom()
              .setSocketTimeout(300000)
              .setConnectTimeout(300000)
              .setConnectionRequestTimeout(300000)
              .build();

CloseableHttpClient client = HttpClientBuilder
              .create()
              .setDefaultRequestConfig(config)
              .build();

RestTemplate restTemplate = new RestTemplateBuilder()
              .defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
              .errorHandler(new RestTemplateResponseErrorHandler())
              .setConnectTimeout(CUSTOM_TIMEOUT)
              .setReadTimeout(CUSTOM_TIMEOUT)
              .build();

HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(client);
factory.setConnectTimeout(300000);
factory.setReadTimeout(300000);
factory.setConnectionRequestTimeout(300000);
restTemplate.setRequestFactory(factory);

谢谢

java spring-boot resttemplate
1个回答
0
投票

网关超时 (504) 表示您正在通话的服务器已达到其自身等待其他服务的超时。

该服务器的超时似乎是 30 秒,无论您使用什么库,您都无法从代码中配置它。

© www.soinside.com 2019 - 2024. All rights reserved.