一个是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
目前canal和otter使用的protobuf版本均为2.4.1. 目前看来是2.4.1生成的class,2.5无法支持,需要测试使用2.5之后,部分老版本用户使用2.4.1版本是否可以正常使用
原回答者GitHub用户agapple
这个错误提示是由于使用的 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 版本可能会影响其他依赖项,因此在修改前需要进行测试,确保修改后的客户端程序可以正常工作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。