开发者社区 > 云原生 > 中间件 > 正文

Seata中为什么在客户端编译和运行时JDK 版本都是 1.8 的情况下还会出现错误呢?

Seata中为什么在客户端编译和运行时 JDK 版本都是 1.8 的情况下还会出现 java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer 错误呢?

展开
收起
fuxixi 2022-10-17 12:57:26 573 0
1 条回答
写回答
取消 提交回答
  • 这是因为编译了 seata 源码然后覆盖了本地的 seata 依赖包的原因,在编译 seata 源码时使用了 JDK 11,而在 JDK 11 中由于改写了 flip() 方法,所以导致不兼容。 解决办法: 编译 seata 源码时确认 JDK 版本为 1.8,以免导致兼容问题 如果已经用 JDK 11 编译了 seata 的源码,请删除本地 maven 仓库下 io.seata 路径下所有包。然后重新编译你的项目,让项目重新拉取中央仓库的 seata 的依赖包。此答案整理自钉钉群“3群-Seata开源讨论群”

    2022-10-17 14:41:39
    赞同 展开评论 打赏

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
《Seata 1.3 新特性以及如何参与社区》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载