错误org.apache.zookeeper.ClientCnxn - 调用观察者时出错

时间:2014-06-04 23:31:49

标签: java apache hadoop apache-zookeeper znodes

我是zookeeper的新手。我编写了简单的程序来创建持久节点。它的工作,但一旦执行完成就给予例外。我试图在谷歌搜索,但没有令人满意的答案。任何人都可以建议我。

public class ZkProg {
    public static void main(String[] args) throws IOException, KeeperException, InterruptedException
    {
        ZooKeeper zk=new ZooKeeper("localhost",1281, null);
        zk.create("/zookeeper/Names",new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
        //zk.delete("/zookeeper/Names",-1);
        zk.close();
    }
}

2 个答案:

答案 0 :(得分:2)

我也记录了这个错误。这是因为Zookeeper观察者为空。在对构造函数的调用中,第三个参数是观察者:

ZooKeeper zk=new ZooKeeper("localhost",1281, null);

似乎Zookeeper ClientCnxn尝试在观察者上调用进程,即使它为null。但是,它会捕获异常,只记录错误并继续。

答案 1 :(得分:2)

如果您不想观看活动,可以编写自己的" StubWatcher"。

创建一个继承自Watcher的类,并使用空体实现process方法。

应该这样做。