Spring Boot 升级时出现“包 org.apache.hc.httpclient5.conn.ssl 不存在”

gen*_* b. 3 java apache-httpclient-4.x spring-boot apache-httpclient-5.x

我必须升级 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>
Run Code Online (Sandbox Code Playgroud)

当前引用了相对较新pom.xml版本HttpClient4.5.3 :

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.3</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

该代码使用的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;
Run Code Online (Sandbox Code Playgroud)

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

为了解决此错误,我将所有出现的替换org.apache.httphttps://hc.apache.org/httpcomponents-client-5.2.x/migration-guide/migration-to-classic.htmlorg.apache.hc.httpclient5

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;
Run Code Online (Sandbox Code Playgroud)

但现在错误是 包 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>
Run Code Online (Sandbox Code Playgroud)

gen*_* b. 5

导入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;
Run Code Online (Sandbox Code Playgroud)

而不是

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;
Run Code Online (Sandbox Code Playgroud)