作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在我的项目中使用 springBootVersion = '2.0.1.RELEASE'。我正在尝试为我编写的 RestClientCertTestConfiguration 类编写相互身份验证代码,如下所示。我在 requestFactory 上收到错误。RestTemplateBuilder 类型中的方法 requestFactory(Class) 不适用于参数 (HttpComponentsClientHttpRequestFactory)关于如何解决此问题的任何建议?谢谢
@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();
}
}
最佳答案
requestFactory
方法采用类或 Supplier<ClientHttpRequestFactory>
所以你需要做:
.requestFactory(HttpComponentsClientHttpRequestFactory.class)
或
.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client))
大概是后者,因为你想传入 client
.
关于java - requestFactory(Class<? extends ClientHttpRequestFactory>) 类型 RestTemplateBuilder 不适用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53675422/
我正在使用 RestTemplate 并添加了一个处理程序来处理一些错误: @Configuration public class IntegrationConfiguration { @Bean p
我在我的项目中使用 springBootVersion = '2.0.1.RELEASE'。我正在尝试为我编写的 RestClientCertTestConfiguration 类编写相互身份验证代码
我是一名优秀的程序员,十分优秀!