Peter Penzov
Peter Penzov

Reputation: 1668

ReactorClientHttpConnector((<no type> opt) -> {}) is undefined

I need help for WebFlux client implementation for the latest version 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);
    }

I get error The constructor ReactorClientHttpConnector((<no type> opt) -> {}) is undefined at this line ClientHttpConnector httpConnector = new ReactorClientHttpConnector(opt -> opt.sslContext(sslContext));

Do you know how I can fix this issue?

Upvotes: 2

Views: 4219

Answers (1)

xingbin
xingbin

Reputation: 28269

From the doc, you need to provide a pre-defined reactor.netty.http.client.HttpClient to construct the ReactorClientHttpConnector.

For example:

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

Upvotes: 3

Related Questions