按照QuickStart 和 ClientSample 搭建了Canal 环境,但跑SimpleCanalClientTest 一直报一个NullPointerException 错误,反复对照检查了配置端口等,的确没发现什么问题,望能给点建议排查错误,具体错误信息如下:
2018-05-26 19:53:29.679 [Thread-1] ERROR com.alibaba.otter.canal.example.AbstractCanalClientTest - process error! java.lang.NullPointerException: null at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.writeWithHeader(SimpleCanalConnector.java:392) ~[classes/:na] at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.writeWithHeader(SimpleCanalConnector.java:380) ~[classes/:na] at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:292) ~[classes/:na] at com.alibaba.otter.canal.client.impl.SimpleCanalConnector.getWithoutAck(SimpleCanalConnector.java:280) ~[classes/:na] at com.alibaba.otter.canal.example.AbstractCanalClientTest.process(AbstractCanalClientTest.java:125) ~[classes/:na]
原提问者GitHub用户wantaoli c
问题找到了,是本地1.26 snapshot 版本的源代码没有build成功导致的,换成1.25 成功build 后,问题消失
原回答者GitHub用户wantaoli
这个错误通常是由于Canal连接没有正常建立导致的。可以尝试以下几个步骤来排查这个问题:
确认Canal Server是否启动,并且监听的端口号是否正确。
确认Canal Client的配置文件中的Canal Server的IP地址和端口号是否正确。
确认Canal Client的代码中是否正确创建了Canal连接,并且连接是否正常。可以使用如下代码来创建Canal连接并尝试建立连接:
CanalConnector connector = CanalConnectors.newSingleConnector(new InetSocketAddress("127.0.0.1", 11111), "example", "", "");
connector.connect(); 如果以上步骤没有解决问题,可以尝试查看Canal Server的日志文件,看看是否有相关的错误信息。可以在Canal Server的conf文件夹下找到logback.xml文件,修改日志级别为debug,然后重启Canal Server,这样就可以看到更详细的日志信息了。 希望这些步骤能够帮助你找到问题所在。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。