【发布时间】: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 目前引用了一个相对较新的版本 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 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