昨天調試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一下,果然正常運行。
至此這個問題算是解決了,學習了。記下來,共同進步,謝謝。
親測好使。