【问题标题】:"Package org.apache.hc.httpclient5.conn.ssl does not exist" on Spring Boot upgrade\"Package org.apache.hc.httpclient5.conn.ssl does not exist\" Spring Boot 升级
【发布时间】:2023-02-23 04:18:43
【问题描述】:

我不得不升级 Spring Boot 依赖项2.7.5 --> 3.0.2:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>3.0.2</version>
    <relativePath />
</parent>

pom.xml 目前引用了一个相对较新的版本 HttpClient4.5.3:

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.3</version>
    </dependency>

该代码使用 org.apache.http 类,现在在 Maven Build 上产生以下错误:

import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;

-->不兼容的类型:org.apache.http.impl.client.CloseableHttpClient 无法转换为 org.apache.hc.client5.http.classic.HttpClient

为了解决这个错误,我将所有出现的 org.apache.http 替换为 org.apache.hc.httpclient5 per https://hc.apache.org/httpcomponents-client-5.2.x/migration-guide/migration-to-classic.html

import org.apache.hc.httpclient5.conn.ssl.SSLConnectionSocketFactory;
import org.apache.hc.httpclient5.conn.ssl.TrustSelfSignedStrategy;
import org.apache.hc.httpclient5.impl.client.CloseableHttpClient;
import org.apache.hc.httpclient5.impl.client.HttpClients;
import org.apache.hc.httpclient5.ssl.SSLContextBuilder;

但是现在错误是包 org.apache.hc.httpclient5.conn.ssl 不存在.它无法解析 HC5 包。有小费吗?

注意:我还尝试用新的替换 HttpClient 依赖项httpclient5依赖,但它是相同的错误:

<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
    <version>5.2.1</version>
</dependency>

【问题讨论】:

    标签: java spring-boot apache-httpclient-4.x apache-httpclient-5.x


    【解决方案1】:

    org.apache.hc.httpclient5. 导入必须略有不同,如下所示:

    import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    import org.apache.hc.client5.http.ssl.TrustSelfSignedStrategy;
    import org.apache.hc.core5.ssl.SSLContextBuilder;
    import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    import org.apache.hc.client5.http.impl.classic.HttpClients;
    

    而不是

    import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.ssl.SSLContextBuilder;
    

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 2023-01-12
      • 2019-04-29
      • 2022-11-12
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多