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

求助:出现java.lang.ClassNotFoundException: com.amazonaws.services.s3.model.S3ObjectInputStream错误

解决java.lang.ClassNotFoundException: com.amazonaws.services.s3.model.S3ObjectInputStream问题

嘿,这个报错其实很好排查——本质就是你的项目里缺少了AWS S3 SDK相关的依赖包,导致Tomcat的类加载器找不到这个类。下面给你几种靠谱的解决办法:

1. 用构建工具添加依赖(推荐)

如果你的项目用Maven或Gradle管理依赖,直接添加对应SDK的依赖就行,注意区分AWS SDK的版本:

Maven(SDK v1)

在pom.xml里加入这段依赖,记得把版本换成最新稳定版:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
    <version>1.12.500</version>
</dependency>

Maven(SDK v2)

如果用的是AWS SDK v2,类路径和依赖都不一样,对应的类是software.amazon.awssdk.services.s3.model.S3ObjectInputStream,依赖如下:

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>s3</artifactId>
    <version>2.20.150</version>
</dependency>

Gradle

同理,Gradle用户可以在build.gradle里添加:

// SDK v1
implementation 'com.amazonaws:aws-java-sdk-s3:1.12.500'

// SDK v2
implementation 'software.amazon.awssdk:s3:2.20.150'

2. 手动添加JAR包(无构建工具时)

如果你的项目没用到构建工具,那就下载对应版本的aws-java-sdk-s3 JAR包,以及它依赖的核心包(比如aws-java-sdk-core),然后把这些JAR放到项目的WEB-INF/lib目录下——因为你是Tomcat环境,这个目录下的包会被Web应用的类加载器加载。

额外注意事项

  • 排查依赖冲突:如果已经加了依赖还是报错,可能是项目里存在多个版本的AWS SDK,导致类加载混乱。可以用Maven的mvn dependency:tree命令或者Gradle的./gradlew dependencies任务查看依赖树,排除掉冲突的旧版本。
  • Tomcat类加载隔离:别把依赖包放到Tomcat的全局lib目录下,Web应用的类加载器优先加载自己WEB-INF/lib里的包,全局目录的包可能会被隔离,导致找不到类。

内容的提问来源于stack exchange,提问作者Rafael Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:44:44