Exception in thread "main" java.lang.NoSuchMethodError: org.apache.curator.utils.PathUtils.validatePath(Ljava/lang/String;)V
at org.apache.curator.framework.imps.NamespaceImpl.<init>(NamespaceImpl.java:37)
at org.apache.curator.framework.imps.CuratorFrameworkImpl.<init>(CuratorFrameworkImpl.java:128)
at org.apache.curator.framework.CuratorFrameworkFactory$Builder.build(CuratorFrameworkFactory.java:122)
at com.myd.cn.OffsetManager.KafkaZkManager$.<init>(KafkaZkManager.scala:28)
at com.myd.cn.OffsetManager.KafkaZkManager$.<clinit>(KafkaZkManager.scala)
at com.myd.cn.OffsetManager.KafkaZkManager.main(KafkaZkManager.scala)
如果是NoDefClassERROR,NoMatchMethodERROR,一般都是jar版本不匹配(一般是过低)问题.
解决:引入依赖
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.7.1</version> </dependency>
注意: 这个curator有三个依赖,确保所有的版本都是一致的(2.7.1) ,可以硬性指定,在pom.xml
强制引入下面三个依赖,指定版本,如下:
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> <version>2.7.1</version> </dependency>
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.7.1</version> </dependency>
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.7.1</version> </dependency>