1

我目前无法使用datastax驱动程序连接到我的cassandra数据库。我收到以下错误:NoClassDefFoundError - Cassandra的datastax java驱动程序

com.datastax.driver.core.TransportException: [/127.0.0.1] Unexpected exception triggered (java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet;) 
    at com.datastax.driver.core.Connection$Dispatcher.exceptionCaught(Connection.java:556) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:122) 

Caused by: java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableSet; 
    at com.datastax.driver.core.DataType.<clinit>(DataType.java:144) 
    at com.datastax.driver.core.Codec.<clinit>(Codec.java:31) 

不过,我已经列入我pom.xmlguava假象如下:

<!-- Datastax driver --> 

    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-core</artifactId> 
     <version>1.0.4</version> 
    </dependency> 

    <!-- Cassandra --> 
    <dependency> 
     <groupId>org.apache.cassandra</groupId> 
     <artifactId>cassandra-all</artifactId> 
     <version>1.2.9</version> 
    </dependency> 

    <!-- guava --< 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>15.0</version> 
    </dependency> 

完全pom.xmlhttp://pastebin.ubuntu.com/6358603/

我缺少的依赖?

回答

0

基于这个问题的建议:no such method error: ImmutableList.copyOf()

我不得不排除谷歌收集的jar:

<dependency> 
     <groupId>org.zkoss.zk</groupId> 
     <artifactId>zkspring-core</artifactId> 
     <version>3.1</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.google.collections</groupId> 
       <artifactId>google-collections</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
0

根据its POMcassandra-driver-core的版本1.0.4使用Guava版本14.0.1,而不是版本15.0。我猜你正在看到版本冲突。即使该版本差异不是这个问题的原因,也可能导致其他问题。

您通常不需要在POM中包含传递依赖关系,Maven会为您处理它们。或者你自己的代码使用番石榴本身?

相关问题