开发者社区> 问答> 正文

canal 1.0.20与otter.canal-client 1.0.20使用的protobuf版

一个是2.4.1一个是2.5,导致用canal-client连接 canal时报错:

java.lang.UnsupportedOperationException: This is supposed to be overridden by subclasses. at com.google.protobuf.GeneratedMessage.getUnknownFields(GeneratedMessage.java:180) ~[protobuf-java-2.5.0.jar:na]

原提问者GitHub用户smilingleo

展开
收起
绿子直子 2023-05-09 16:06:45 124 0
2 条回答
写回答
取消 提交回答
  • 目前canal和otter使用的protobuf版本均为2.4.1. 目前看来是2.4.1生成的class,2.5无法支持,需要测试使用2.5之后,部分老版本用户使用2.4.1版本是否可以正常使用

    原回答者GitHub用户agapple

    2023-05-10 11:05:52
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    这个错误提示是由于使用的 protobuf 版本不一致导致的。Canal 1.0.20 与 otter-canal-client 1.0.20 使用的 protobuf 版本不同,分别为 2.4.1 和 2.5。因此,在使用 otter-canal-client 连接 Canal 时,需要将 protobuf 的版本修改为 2.4.1。

    您可以在 otter-canal-client 的 pom.xml 文件中,将 protobuf-java 的版本修改为 2.4.1,例如:

    com.google.protobuf

    protobuf-java

    2.4.1

    修改完成后,重新编译 otter-canal-client,并使用修改后的客户端连接 Canal,即可避免该错误。

    需要注意的是,修改 protobuf 版本可能会影响其他依赖项,因此在修改前需要进行测试,确保修改后的客户端程序可以正常工作。

    2023-05-10 09:45:39
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载