“Package org.apache.hc.httpclient5.conn.ssl does not exist” on Spring Boot upgrade

问题描述 投票:0回答:1

我必须升级 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
目前引用了比较新的版本
HttpClient
4.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
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 包。有小费吗?

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

<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个回答
0
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.