带有代理的 Spring 重试模板

问题描述

我有一个设置了代理的 RestTemplate,例如

Proxy proxy = new Proxy(Type.HTTP,new InetSocketAddress(config.getProxyHost(),config.getProxyPort()));
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setProxy(proxy);

restTemplate = new RestTemplate(requestFactory);

现在我也用 RetryTemplate 尝试了这个,它显然不起作用,没有像这样的构造函数

RetryTemplate retryTemplate = new RetryTemplate(requestFactory); // does not work

有什么方法可以像 RestTemplate 一样将代理设置设置为 RetryTemplate 吗?

解决方法

目前尚不清楚您要做什么。代理用于通过 HTTP 通信,重试模板与 HTTP 无关。

如果您想重试调用您的休息模板,请使用

... = retryTemplate.execute(context -> {
    return restTemplate....();
}