You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot升级后出现org.apache.hc.httpclient5.conn.ssl包不存在问题

解决Spring Boot 3.0.2升级后HttpClient5依赖与包路径问题

1. 对齐Spring Boot依赖管理的HttpClient5版本

Spring Boot 3.0.x的spring-boot-dependencies已内置HttpClient5的版本管控,直接引入依赖即可,无需手动指定版本,避免版本冲突:

<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
</dependency>
<!-- 若需SSL相关功能,必须补充引入核心SSL模块 -->
<dependency>
    <groupId>org.apache.httpcomponents.core5</groupId>
    <artifactId>httpcore5-ssl</artifactId>
</dependency>

2. 修正SSL类的包路径

HttpClient5重构了SSL相关类的位置,原org.apache.hc.httpclient5.conn.ssl下的类已迁移至org.apache.hc.core5.ssl,常见替换示例:

  • 原4.x的org.apache.http.conn.ssl.SSLConnectionSocketFactory → org.apache.hc.core5.ssl.SSLConnectionSocketFactory
  • 原4.x的org.apache.http.conn.ssl.TrustSelfSignedStrategy → org.apache.hc.core5.ssl.TrustSelfSignedStrategy
  • 原4.x的org.apache.http.conn.ssl.SSLContexts → org.apache.hc.core5.ssl.SSLContexts

3. 清理HttpClient4.x残留依赖

检查pom.xml,删除或排除所有旧版HttpClient4.x的依赖(groupId为org.apache.httpcomponents的httpclient/httpcore),避免类加载冲突:

<!-- 若其他依赖间接引入HttpClient4.x,添加排除规则 -->
<dependency>
    <groupId>第三方依赖groupId</groupId>
    <artifactId>第三方依赖artifactId</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4. 调整HttpClient实例化代码

HttpClient5的客户端构建逻辑与4.x有差异,示例修正:
原4.x代码:

CloseableHttpClient client = HttpClientBuilder.create().build();

替换为HttpClient5写法:

// 基础默认客户端
CloseableHttpClient client = HttpClients.createDefault();

// 自定义SSL配置示例
HttpClientBuilder clientBuilder = HttpClients.custom();
SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(
    SSLContexts.createDefault(),
    new String[]{"TLSv1.2", "TLSv1.3"},
    null,
    SSLConnectionSocketFactory.getDefaultHostnameVerifier()
);
clientBuilder.setSSLSocketFactory(sslSocketFactory);
CloseableHttpClient customClient = clientBuilder.build();

5. 校验依赖树

执行mvn dependency:tree命令,确认项目中所有HTTP相关依赖均为HttpClient5系列(groupId为org.apache.httpcomponents.client5或org.apache.httpcomponents.core5),无4.x版本混杂。

内容的提问来源于stack exchange,提问作者gene b.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:09:27