首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >requestFactory(Class<?扩展ClientHttpRequestFactory>)在RestTemplateBuilder类型中不适用

requestFactory(Class<?扩展ClientHttpRequestFactory>)在RestTemplateBuilder类型中不适用
EN

Stack Overflow用户
提问于 2018-12-07 19:01:20
回答 2查看 4.5K关注 0票数 8

在我的项目中,我使用的是springBootVersion =‘2.0.1。我正在尝试编写相互身份验证代码,如下所示,我编写了RestClientCertTestConfiguration类。我在requestFactory上出错了。requestFactory(类)类型中的方法RestTemplateBuilder不适用于参数(HttpComponentsClientHttpRequestFactory),对于如何解决这个问题有什么建议吗?谢谢

代码语言:javascript
运行
复制
    @Configuration
public class RestClientCertTestConfiguration {

    private String allPassword = "mypassword";

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) throws Exception {

        SSLContext sslContext = SSLContextBuilder
                .create()
                .loadKeyMaterial(ResourceUtils.getFile("classpath:myCerts.jks"), allPassword.toCharArray(), allPassword.toCharArray())
                .loadTrustMaterial(ResourceUtils.getFile("classpath:myCerts.jks"), allPassword.toCharArray())
                .build();

        HttpClient client = HttpClients.custom()
                .setSSLContext(sslContext)
                .build();

        return builder 
                 //error on this line
                .requestFactory(new HttpComponentsClientHttpRequestFactory(client))
                .build();
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-07 20:02:01

requestFactory方法要么接受类,要么接受Supplier<ClientHttpRequestFactory>,因此您需要这样做:

代码语言:javascript
运行
复制
.requestFactory(HttpComponentsClientHttpRequestFactory.class)

代码语言:javascript
运行
复制
.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client))

可能是后者,因为您想通过client

票数 16
EN

Stack Overflow用户

发布于 2019-03-06 10:49:54

下面的方法在弹簧引导1.x之前工作得很好

代码语言:javascript
运行
复制
.requestFactory(new HttpComponentsClientHttpRequestFactory(client))

但是在较晚版本的spring (如2.x )中,您需要将其更改为-

代码语言:javascript
运行
复制
.requestFactory(HttpComponentsClientHttpRequestFactory.class)

代码语言:javascript
运行
复制
.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client))
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53675422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档