昨天调试java连接zookeeper服务器,zookeeper搭建过程在这里不做赘述,在创建连接后,然后操作节点一直报异常
错误信息如下:
Exception in thread "main" org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /test
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1069)
at zookeeper_demo.Test3.isExist(Test3.java:82)
at zookeeper_demo.Test3.main(Test3.java:27)
网上也说了很多情况:
1、连接还没有创建完成,就操作节点就会报异常?(最多,而且千篇一律,都一样)
2、用最新的jar试一下?(试了不好用)
3、防火墙没有关闭?(我的已经关闭)
上面的方法都用了一下,依然报错,后来我就查资料,然而并没什么有用的信息,各个网站都是差不多,具体原因大家都懂。。。
我首先从建立连接时间开始着手,在创建连接后,线程休眠10s,然后操作节点,果然,结果出现了(这算是向成功迈进了第一步,我就想不可能这么慢吧?一定有其他原因。),
后来查阅文档,我觉得程序没什么问题后,就从jar包开始入手,我引入了log4j、slf4j-api、zookeeper,最终定位到zookeeperjar的问题。
解决方法是:
把服务器上的jar包复制到项目中,然后debug一下,果然正常运行。
至此这个问题算是解决了,学习了。记下来,共同进步,谢谢。
亲测好使。