requestFactory (Класс) в типе RestTemplateBuilder не применяется - PullRequest
0 голосов
/ 07 декабря 2018

Я использую springBootVersion = '2.0.1.RELEASE' в моем проекте.Я пытаюсь написать код взаимной аутентификации, для которого я написал класс RestClientCertTestConfiguration, как показано ниже.Я получаю сообщение об ошибке по запросу.Метод requestFactory (Class) в типе RestTemplateBuilder не применим для аргументов (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();
    }

}

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Приведенный ниже метод работает нормально до весенней загрузки 1.x

.requestFactory(new HttpComponentsClientHttpRequestFactory(client))

, но в более поздней версии весенней загрузки, такой как 2.x, необходимо изменить ее на -

.requestFactory(HttpComponentsClientHttpRequestFactory.class)

или

.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client))
0 голосов
/ 07 декабря 2018

Метод requestFactory принимает либо класс, либо Supplier<ClientHttpRequestFactory>, поэтому вам нужно сделать либо:

.requestFactory(HttpComponentsClientHttpRequestFactory.class)

, либо

.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client))

Предположительно, последний, так как выхочу пройти в client.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...