springboot项目启动报错:Description:...io.minio.S3Base.<clinit>The following method did not exist:【已解决】
文章目录
报错分析——minio依赖冲突
使用minio 8.5.6版本的依赖导致如下报错
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location
io.minio.S3Base.(S3Base.java:105)
The following method did not exist:okhttp3.RequestBody.create([BLokhttp3/MediaType,)Lokhttp3/RequestBody,The method’s class, okhttp3.RequestBody, is available from the following locations:jar:file:/E: /Maven/apache-maven-3.6.1-bin/repository/com/squareup/okhttp3/okhttp/3.14.6/okhttp-3.14.6.jar!/okhttp3/RequestBody.classIt was loaded from the following location:

-
根据异常信息分析:
该错误信息表明在初始化 i…minio.s3Base类时,尝试调用一个不存在的方法。具体来说,是尝试调用了olhttp3.RequestBody.create(byte[],llediaType)这个方法,但是这个方法在当前的类路径中找不到,错误信息还提供了以下关键点:
方法调用的位置:io.minio.s3Base.(s3Base.java:105)
缺失的方法签名:olhttp3.RequestBody.create([BLokhttp3/llediaType,)Lokhttp3/RequestBodyolhttp3.RequestBody 类确实存在于你的类路径中,来源于路径:jar:fi1e:/E:/laven/apache-maven-3.6.1-bin/repository/com/squareup/okhttp3/okhttp/3.14.6/okhttp-3.14.6. jar!/okhttp3/RequestBody.class -
导致问题出现的原因
很可能是由于依赖冲突或者使用的OkHttp库版本不兼容导致的。okhttp3.RequestBody.create(byte[], MediaType) 这个方法在某些版本的OkHttp库中可能存在,但在你当前使用的3.14.6版本中可能已经被改变、移除或是以不同的签名存在。
解决方式
- 因为是okhttp依赖冲突造成的服务启动失败,因为minio底层要依赖okhttp进行和minio服务端进行通信,由于项目中多个依赖底层都依赖了不同版本的okhttp,导致这里的okhttp因版本不同,某些方法不可用,尝试降级minio的版本。
- 在这里我将依赖版本降低至8.2.1版本,解决报错

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)