连接zk
public static void main(String[] args) {
CuratorFramework curator = CuratorFrameworkFactory.builder().connectString("127.0.0.1")
.retryPolicy(new RetryOneTime( 4))
.connectionTimeoutMs(10000)
.sessionTimeoutMs(6000)
.build();
curator.start();
}
报错:
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.curator.RetryPolicy
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
解决,不适应main方法执行,使用下面方式就可以
@Test
public void testzk() {
CuratorFramework curatorFramework = Demo.getCuratorFramework();
System.out.println(curatorFramework);
}
public static CuratorFramework getCuratorFramework() {
CuratorFramework client = CuratorFrameworkFactory.builder().connectString("127.0.0.1:2181")
.connectionTimeoutMs(60 * 1000)
.sessionTimeoutMs(60 * 1000).retryPolicy(new RetryUntilElapsed(1000, 4)).build();
client.start();
return client;
}
本文介绍如何使用Curator框架连接ZooKeeper,并解决在Java环境中遇到的NoClassDefFoundError异常。通过修改代码结构,采用单元测试的方式成功实现了ZooKeeper客户端的初始化。
2132

被折叠的 条评论
为什么被折叠?



