package com.huawei.cn;
import org.apache.zookeeper.ZooKeeper;
import org.junit.Test;
import java.io.IOException;
import java.util.List;
public class ZookeeperTest {
@Test
public void ls() throws Exception {
ZooKeeper zk=new ZooKeeper("192.168.0.110:2181",5000,null);
List<String>list = zk.getChildren("/",null);
for(String tt:list){
System.out.println(tt);
}
}
/**
* 递归列出所有子节点的信息
*/
@Test
public void lsall() throws Exception {
ls("/");
}
public void ls(String path) throws Exception {
ZooKeeper zk=new ZooKeeper("192.168.0.110:2181",5000,null);
List<String>list=zk.getChildren(path,null);
if(list==null||list.isEmpty()){
return ;
}
if(path.equals("/")){
path="";
}
for(String tt:list){
String next=path+"/"+tt;
System.out.println(tt);
ls(next);
}
}
}
有一个报错,估计是访问权限的问题,还是访问到不能访问的东西,后面再看。
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /solr/configs/managedTemplate/velocity/facet_fields.vm
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1532)
at com.huawei.cn.ZookeeperTest.ls(ZookeeperTest.java:30)
at com.huawei.cn.ZookeeperTest.ls(ZookeeperTest.java:40)
at com.huawei.cn.ZookeeperTest.ls(ZookeeperTest.java:40)
at com.huawei.cn.ZookeeperTest.ls(ZookeeperTest.java:40)
at com.huawei.cn.ZookeeperTest.ls(ZookeeperTest.java:40)
at com.huawei.cn.ZookeeperTest.ls(ZookeeperTest.java:40)
at com.huawei.cn.ZookeeperTest.lsall(ZookeeperTest.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)