SpringBoot将RestTemplateBuilder从1.5.14升级到2.1.5

问题描述 投票:5回答:4

我的这段代码在使用RestTemplateBuilder 1.5.14的项目中运行良好,>

this.restTemplate = restTemplateBuilder
                .setConnectTimeout(connectTimeout)
                .setReadTimeout(readTimeout)
                .requestFactory(new MyHttpComponentFactoryBuilder()
                        .build())
                .build();

更新为RestTemplateBuilder 2.1.5后,我有这段代码:

this.restTemplate = restTemplateBuilder
                .setConnectTimeout(Duration.ofMillis(connectTimeout))
                .setReadTimeout(Duration.ofMillis(readTimeout))
                .requestFactory(new MyHttpComponentFactoryBuilder().build().getClass())
                .build();

但是在运行代码时,我有一个InvocationTargetException / NullPointerException在删除第.requestFactory(new MyHttpComponentFactoryBuilder().build().getClass())行时消失,但是调试new MyHttpComponentFactoryBuilder().build().getClass()不为空

我也尝试过提出的解决方案:

... 
.requestFactory(new MyRequestFactorySupplier())
...

class MyRequestFactorySupplier implements Supplier<ClientHttpRequestFactory> {

        @Override
        public ClientHttpRequestFactory get() {

            // Using Apache HTTP client.
            HttpClientBuilder clientBuilder = HttpClientBuilder.create();
            HttpClient httpClient = clientBuilder.build();
            HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
            requestFactory.setBufferRequestBody(false); // When sending large amounts of data via POST or PUT, it is recommended to change this property to false, so as not to run out of memory.
            return requestFactory;
        }

    }

但我也有一个InvocationTargetException / NullPointerException

[我的这段代码在使用RestTemplateBuilder 1.5.14的项目上运行良好,this.restTemplate = restTemplateBuilder .setConnectTimeout(connectTimeout)....

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

尝试删除.getClass()调用,如果。requestFactory调用


0
投票

下面的代码显示了如何为简单的案例创建restTemplate。


0
投票

这应该可以工作(使用lambda)


0
投票

[从使用Spring-boot版本1.5.1的最小可行示例开始。

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