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

使用docker-java API 3.5.0时遇TlsSocketStrategy类找不到异常

解决Docker-Java API运行时NoClassDefFoundError问题

问题原因

org.apache.hc.client5.http.ssl.TlsSocketStrategy属于Apache HttpClient 5.x的核心组件,出现ClassNotFoundException说明项目中缺少该类所在的依赖包——即便引入了docker-java-transport-httpclient5,也可能因为依赖传递失效、版本冲突或缓存问题导致相关组件未被正确加载。

解决方案

1. 补充Apache HttpClient 5依赖

在pom.xml中手动添加HttpClient 5的核心依赖(版本需与docker-java 3.5.0兼容,推荐使用5.2.1版本):

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

2. 检查并排除依赖冲突

执行Maven依赖树命令,排查是否存在老版本HttpClient(4.x)的冲突:

mvn dependency:tree | grep -i httpclient

如果发现其他依赖引入了HttpClient 4.x,需在对应依赖中排除冲突组件:

<dependency>
    <groupId>冲突依赖的groupId</groupId>
    <artifactId>冲突依赖的artifactId</artifactId>
    <version>对应版本</version>
    <exclusions>
        <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 清理缓存并重新构建

执行以下命令清理Maven本地缓存,强制更新依赖并重新构建项目:

mvn clean install -U

4. 同步IDE依赖(若使用IDE开发)

如果是IntelliJ IDEA或Eclipse,需手动同步Maven依赖:

  • IntelliJ:点击右侧Maven面板的「Reload All Maven Projects」按钮
  • Eclipse:右键项目 → Maven → Update Project

内容的提问来源于stack exchange,提问作者Chengyuan Zhang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:22:09