我有一个使用 Maven 导入 io.minio minio 包的 Java 8 项目。我们一直在使用 minio 包 8.2.1,但由于 this vulnerability我们正在尝试将此软件包更新到较新的版本。尝试更新到任何 8.3 版本后,我在尝试构造新的 MinioClient 对象时得到以下堆栈跟踪:
Caused by: java.lang.RuntimeException: Unsupported OkHttp library found. Must use okhttp >= 4.8.1
at io.minio.S3Base.<clinit>(S3Base.java:100)
... 26 more
Caused by: java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B
at okio.Segment.writeTo(Segment.kt:169)
at okio.Segment.compact(Segment.kt:152)
at okio.Buffer.write(Buffer.kt:1842)
at okio.Buffer.read(Buffer.kt:1854)
at okio.Buffer.writeAll(Buffer.kt:1642)
at okio.Options$Companion.buildTrieRecursive(Options.kt:187)
at okio.Options$Companion.buildTrieRecursive(Options.kt:174)
at okio.Options$Companion.buildTrieRecursive$default(Options.kt:113)
at okio.Options$Companion.of(Options.kt:72)
at okhttp3.internal.Util.<clinit>(Util.kt:71)
at okhttp3.RequestBody$Companion.create(RequestBody.kt:145)
at okhttp3.RequestBody$Companion.create$default(RequestBody.kt:143)
at okhttp3.RequestBody.create(RequestBody.kt)
at io.minio.S3Base.<clinit>(S3Base.java:98)
... 26 more
我没有覆盖 minio 8.3.X 中包含的 okhttp 包 (4.8.1)。我已经验证 maven 在 IntelliJ 项目查看器的外部库部分中(仅)使用 okhttp3 4.8.1,并通过运行 mvn dependency:tree
并看到只有一个 okhttp3 包在使用项目(v4.8.1)。有人知道如何解决这个错误吗?
最佳答案
您的构建工具应该引入 OkHttp 的传递依赖项 Okio 和 Kotlin-stdlib。从这个堆栈跟踪看来,Kotlin stdlib 要么已经过时,要么不存在?更新它,这个崩溃应该得到修复。
关于okhttp - okhttp 和 minio 3.x 包的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70777182/