1

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

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)

但是,我已将guava人工制品包含在pom.xml以下内容中:

<!-- 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.xml: http: //pastebin.ubuntu.com/6358603/

我是否缺少依赖项?

4

2 回答 2

0

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

您通常不需要在 POM 中包含传递依赖项,Maven 会为您处理它们。还是您自己的代码使用 Guava 本身?

于 2013-11-04T13:35:49.930 回答
0

根据这个问题的建议:没有这样的方法错误:ImmutableList.copyOf()

我不得不排除谷歌收藏罐:

    <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>
于 2013-11-04T15:02:04.403 回答