项目场景:
在学习zookeeper JavaAPI操作时,查询节点报错org.apache.zookeeper.KeeperException$NoNodeException
@Test
public void testGet1() throws Exception {
byte[] data = client.getData().forPath("/app2");
System.out.println(new String(data));
}
问题描述
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /jensen/app2
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /jensen/app2
at org.apache.zookeeper.KeeperException.create(KeeperException.java:118)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:54)
at org.apache.zookeeper.ZooKeeper.getData(ZooKeeper.java:2028)
at org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:328)
at org.apache.curator.framework.imps.GetDataBuilderImpl$4.call(GetDataBuilderImpl.java:317)
at org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:94)
at org.apache.curator.framework.imps.GetDataBuilderImpl.pathInForeground(GetDataBuilderImpl.java:314)
at org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:305)
at org.apache.curator.framework.imps.GetDataBuilderImpl.forPath(GetDataBuilderImpl.java:36)
at com.lyz.zookeeper.Test01.testGet1(Test01.java:40)
原因分析:
报错原因:NoNode
org.apache.zookeeper.KeeperException$NoNodeException:这是异常的类,表示Apache ZooKeeper中发生了"NoNode"异常。
KeeperErrorCode = NoNode:这进一步指明错误是由于ZooKeeper服务器中指定节点的不存在(NoNode)引起的。
/jensen/app1:这是尝试访问但不存在的路径或znode。
解决方案:
在zookeeper中加入这个节点再查询就可以了