【问题标题】:webClient issue - Between ReactorClientHttpConnector and httpClientwebClient 问题 - 在 ReactorClientHttpConnector 和 httpClient 之间
【发布时间】:2021-02-15 21:34:24
【问题描述】:

我遇到了版本问题,首先让我解释一下这个问题。 我有以下代码:

public WebClient createWebClient() throws SSLException {
        SslContext sslContext = SslContextBuilder
                .forClient()
                .trustManager(InsecureTrustManagerFactory.INSTANCE)
                .build();
        HttpClient httpClient = HttpClient.create().secure(t -> t.sslContext(sslContext));

        return WebClient.builder().baseUrl(endpointURL)
                .clientConnector(new ReactorClientHttpConnector(httpClient))
                .filter(errorHandlingFilter())
                .build();
    }

使用 spring-web 版本 5.2.3 和 netty 版本 0.9.3 与 clientConnector 的部分工作正常。 现在我拥有的版本是 5.0.11(仅限),然后这部分代码停止处理错误:

incompatible types: reactor.netty.http.client.HttpClient cannot be converted to java.util.functi
on.Consumer<? super reactor.ipc.netty.http.client.HttpClientOptions.Builder>

旧版spring-web有什么替代方案吗?

提前致谢 =)

【问题讨论】:

    标签: httpclient netty webclient spring-webclient reactor-netty


    【解决方案1】:

    我认为这是不可能的。 HttpClientOptions 已从 reactor-netty 的 0.8.x 代中删除,您实际上是在尝试使用 2 年的 Spring Framework 代和 9 个月前的版本。

    Spring 团队正在努力保持兼容性,但在 reactor netty 的情况下,这仍然是一个处于 0.x 阶段的项目,仍然需要 API 更改/重新打包。

    【讨论】:

    • 感谢您的回复 =) ,我以为会是这样。这是将 SSL 与 webClient 一起使用的唯一方法吗?
    • 我不认为 SSL 配置是这里的问题:即使你让它工作,也不能保证这两个版本在运行时能正常工作。我想说使用兼容版本是您应该在这里解决的第一个问题。
    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 2021-04-19
    • 2014-08-10
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多