Java SDK报错okhttp3.RequestBody.create(java.lang.String,okhttp3.MediaType)
问题现象
OBS Java SDK报错“okhttp3.RequestBody.create(java.lang.String,okhttp3.MediaType)”。
问题原因
因spring-boot约定了三方依赖的版本,可参考:Spring-boot Managed Dependency Coordinates。在spring-boot框架中引入OBS SDK时,会将SDK所指定的三方依赖okhttp3的版本由4.8.0降至3.14.9,导致无法获取到指定方法。可以通过使用集成了三方依赖的bundle版SDK来进行规避,或在您的项目中显示的引用 4.8.0 版本的okhttp3。
解决方法
参考依赖缺失和依赖冲突的解决确认三方依赖版本是否引用正确,或直接使用如下代码引入bundle版SDK替换原版即可。
<dependency> <groupId>com.huaweicloud</groupId> <artifactId>esdk-obs-java-bundle</artifactId> <version>[3.21.8,)</version> </dependency>