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

Spring Boot 3.0+Java17上传Oracle对象存储所需Maven依赖及报错解决

解决OCI Java SDK在Spring Boot 3.0 + Java 17下的HTTP Provider缺失问题

问题原因

Spring Boot 3.0全面切换到Jakarta EE API,取代了Spring Boot 2.x使用的Java EE。而OCI Java SDK 3.x版本开始,oci-java-sdk-objectstorage不再默认包含HTTP客户端实现依赖,尤其在Jakarta环境下必须显式添加兼容的HTTP客户端模块,这就是你遇到NoSuchElementException的核心原因。之前Spring Boot 2.x + Java 11的环境中,旧版SDK可能默认引入了适配Java EE的HTTP依赖,所以没出问题。

解决方案

在Maven的<dependencies>块中添加Jakarta兼容的HTTP客户端依赖即可,推荐用Jersey的适配版本:

<dependencies>
    <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-objectstorage</artifactId>
    </dependency>
    <!-- 显式添加Jakarta版本的HTTP客户端依赖 -->
    <dependency>
        <groupId>com.oracle.oci.sdk</groupId>
        <artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
    </dependency>
</dependencies>

如果偏好其他HTTP客户端实现,也可以选择以下任一模块:

  • oci-java-sdk-common-httpclient-apache(基于Apache HttpClient)
  • oci-java-sdk-common-httpclient-resteasy(基于Resteasy)

验证说明

添加依赖后重新构建项目,OCI SDK就能自动识别并使用对应的HTTP Provider,NoSuchElementException异常会被解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:05:43