ReactorClientHttpConnector ((<no type> opt) -> {}) не определен - PullRequest
0 голосов
/ 09 января 2019

Мне нужна помощь для реализации клиента WebFlux для последней версии spring-webflux 5.1.3.RELEASE.

public RestClient(String gatewayUrl, String token, String username, String password, SslContext sslContext) {
        this.token = token;
        WebClient.Builder builder = WebClient.builder().baseUrl(gatewayUrl);
        if (sslContext != null) {
            ClientHttpConnector httpConnector = new ReactorClientHttpConnector(opt -> opt.sslContext(sslContext));
            builder.clientConnector(httpConnector);
        }
        if (username != null && password != null) {
            builder.filter(basicAuthentication(username, password));
        }
        client = builder.build();
    }

    public Mono<Response> execute(Transaction transaction) {
        Mono<Transaction> transactionMono = Mono.just(transaction);
        return client.post().uri("/v1/{token}", token)
                .header(HttpHeaders.USER_AGENT, "client")
                .accept(MediaType.APPLICATION_XML)
                .contentType(MediaType.APPLICATION_XML)
                .body(transactionMono, Transaction.class)
                .retrieve()
                .bodyToMono(Response.class);
    }

Я получаю ошибку The constructor ReactorClientHttpConnector((<no type> opt) -> {}) is undefined в этой строке ClientHttpConnector httpConnector = new ReactorClientHttpConnector(opt -> opt.sslContext(sslContext));

Знаете ли вы, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 12 января 2019

Начиная с doc , вам необходимо предоставить заранее определенный reactor.netty.http.client.HttpClient для построения ReactorClientHttpConnector.

Например:

HttpClient httpClient = HttpClient.create().secure(sslContextSpec -> sslContextSpec.sslContext(sslContext));
ClientHttpConnector httpConnector = new ReactorClientHttpConnector(httpClient);
...