gpt4 book ai didi

java - 尽管使用了着色 jar,但 cassandra 的 Java 驱动程序 3.0 中仍出现 IllegalStateException

转载 作者:行者123 更新时间:2023-11-30 07:22:09 25 4
gpt4 key购买 nike

我尝试使用现在推荐的 datastax java driver 3.0 从 java 连接到 cassandra,但出现异常

Caused by: java.lang.IllegalStateException: Detected Guava issue #1635 which indicates that a version of Guava less than 16.01 is in use.  This introduces codec resolution issues and potentially other incompatibility issues in the driver.  Please upgrade to Guava 16.01 or later.
at com.datastax.driver.core.SanityChecks.checkGuava(SanityChecks.java:62)
at com.datastax.driver.core.SanityChecks.check(SanityChecks.java:36)
at com.datastax.driver.core.Cluster.<clinit>(Cluster.java:67)

我已经下载了zip文件并使用maven编译mvn clean package -Dskiptests在核心驱动程序的目标文件夹中,我找到了一个名为 java-driver-3.0/cassandra-driver-core-3.0.1-SNAPSHOT-shaded.jar 的 jar,我将其添加到我的项目库中。尝试运行该项目会出现上述异常。

尝试连接到集群,如下所示

private static Cluster CLUSTER;
private static Session SESSION;

public static Cluster createCluster() {
CLUSTER = Cluster.builder().addContactPoint("127.0.0.1").build();
SESSION = CLUSTER.connect();
ResultSet rs = SESSION.execute("select release_version from system.local");
Row row = rs.one();
System.out.println(row.getString("relese_version"));
return CLUSTER;
}

public static Cluster getCluster() {
if (null == CLUSTER) {
CLUSTER = createCluster();
}
return CLUSTER;
}

我怀疑解决方案是 here但我不知道我应该用这个 XML 做什么。我对 Maven 来说是个新手,请对我宽容一些。最后,Hector客户端是否支持Cassandra 3.x,因为如果我不能解决上述问题,我不介意使用hector。

最佳答案

java驱动的着色配置只着色netty库,而不着色guava。不对 guava 进行着色的主要动机是 java 驱动程序的公共(public) API 在许多地方公开了 guava 类,例如 ListenableFutureTypeToken

你的代码运行得怎么样?您使用的是 maven exec:java 还是某种 IDE?

我的猜测是您的类路径中的某个位置存在一个早于 16.01 的 Guava 库。验证可以使用哪个 jar 的一种方法是从中获取一个类并打印它的源位置。也就是说,您可以尝试使用 ListenableFuture 这是 Guava 库的一部分:

System.out.println(ListenableFuture.class.getProtectionDomain().getCodeSource().getLocation().getPath());

这将打印包含该类的 jar 的位置,即:

/Users/username/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar

Finally, does Hector client have support for Cassandra 3.x cause if I can't resolve the above issue I wouldn't mind using hector.

Hector 是 thrift 传输的客户端,该传输已被弃用,并将在 Cassandra 4.0 中删除。它不再是一个活跃的项目,因此我不建议使用它。

关于java - 尽管使用了着色 jar,但 cassandra 的 Java 驱动程序 3.0 中仍出现 IllegalStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37379615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com