使用Java SDK调用Oracle Object Store报Jersey类缺失,缺少哪些依赖?
问题原因
java.lang.TypeNotPresentException: Type org.glassfish.jersey.spi.ComponentProvider not present报错是因为Oracle OCI Java SDK默认基于Jersey HTTP客户端实现,你当前仅引入了对象存储核心SDK包,缺少Jersey相关的传递依赖。
修复方案
你可以在dependencies块中补充OCI SDK的Jersey客户端依赖即可,修正后的完整build.gradle配置如下:
plugins { id 'java' } dependencyManagement { imports { mavenBom 'com.oracle.oci.sdk:oci-java-sdk-bom:2.6.0' } } dependencies { // OCI对象存储核心依赖 implementation 'com.oracle.oci.sdk:oci-java-sdk-objectstorage' // 补充缺失的Jersey HTTP客户端依赖,JDK17及以上版本使用jersey3 implementation 'com.oracle.oci.sdk:oci-java-sdk-httpclient-jersey3' // 如果你使用JDK8/11还在使用Jersey2版本,替换为下面的依赖 // implementation 'com.oracle.oci.sdk:oci-java-sdk-httpclient-jersey2' testImplementation 'org.springframework.boot:spring-boot-starter-test' }
可选说明
- 如果你不想使用Jersey作为HTTP客户端,也可以替换为OCI官方提供的OKHTTP客户端实现,依赖为
com.oracle.oci.sdk:oci-java-sdk-httpclient-okhttp - 由于你已经引入了
oci-java-sdk-bom,所有OCI SDK相关依赖都不需要额外指定版本号,会自动和BOM版本保持一致
内容的提问来源于stack exchange,提问作者Pokuri
相关产品推荐
相关产品推荐

