当前位置: 首页 > 知识库问答 >
问题:

Java driver 3.0 for cassandra中的IllegalStateException(尽管使用了阴影jar)

麹耘豪
2023-03-14

我试图使用现在推荐的datastax java驱动程序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文件,并用mavenMVN 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;
}

我怀疑解决方案就在这里,但我不知道该如何处理该XML。我在Maven相对来说是一个新手,请对我宽容一点。最后,Hector客户端支持Cassandra3.x吗?如果我不能解决上述问题,我不介意使用Hector。

共有1个答案

钱旻
2023-03-14

java驱动程序的阴影配置只遮蔽了netty库,而不遮蔽了Guava库。不对guava着色的主要原因是java驱动程序的公共API在许多地方公开了guava类,如ListenableFutureTypeToken

您是如何运行代码的?您使用的是Maven exec:java还是某种IDE?

我的猜测是,在您的类路径中存在一个比16.01更早的番石榴库。验证可以使用哪个jar的一种方法是从中提取一个类并打印它的源位置。也就是说,您可以在作为guava库的一部分的ListenableFuture中尝试这样做:

System.out.println(ListenableFuture.class.getProtectionDomain().getCodeSource().getLocation().getPath());
/Users/username/.m2/repository/com/google/guava/guava/16.0.1/guava-16.0.1.jar

Hector是节俭运输的客户,节俭运输已经被弃用,并将在Cassandra4.0中删除。它不再是一个活动的项目,所以我不建议使用它。

 类似资料:
  • 阴影 Unity 的灯光可以将 阴影 从一个游戏对象投射到自身的其他部分或是附近的其他游戏对象上。阴影以『扁平』的方式体现游戏对象的尺寸和位置,因此可以为场景添加一定程度的深度和真实感。 场景视图中的游戏对象正在投射阴影 阴影如何工作? 考虑一种最简单的情况,在场景中只有单个光源。光线从光源出发并沿着直线传播,最终可能会碰撞到场景中的游戏对象。一旦光线碰撞到某个游戏对象,光线将无法继续传播和照亮前

  • 我的项目依赖于另一个项目的阴影JAR。另一个项目使用shade插件将一些的包中的所有类重新定位到。 这是意料之中的行为吗?有没有一种方法可以阻止这种传递阴影? 其他项目的阴影插件:

  • 主要内容:1. text-shadow,2. box-shadow在网页设计中常常要使用到阴影效果,通过阴影效果可以很好的突出一个元素,在 CSS3 出现之前,我们想要为文本或者元素添加阴影效果需要借助图像才能实现,很不方便。而 CSS3 出现之后,我们通过 text-shadow 和 box-shadow 两个属性就可以为文本或元素添加阴影效果,不需要借助任何图像。 1. text-shadow 使用 CSS 的 text-shadow 属性我们可以为文本设置

  • 注意: Internet Explorer和Safari不支持SVG滤镜! <defs> 和 <filter> 所有互联网的SVG滤镜定义在<defs>元素中。<defs>元素定义短并含有特殊元素(如滤镜)定义。 <filter>标签用来定义SVG滤镜。<filter>标签使用必需的id属性来定义向图形应用哪个滤镜? SVG <feOffset> 实例 1 <feOffset>元素是用于创建阴影效

  • 阴影     iOS的另一个常见特性呢,就是阴影。阴影往往可以达到图层深度暗示的效果。也能够用来强调正在显示的图层和优先级(比如说一个在其他视图之前的弹出框),不过有时候他们只是单纯的装饰目的。     给shadowOpacity属性一个大于默认值(也就是0)的值,阴影就可以显示在任意图层之下。shadowOpacity是一个必须在0.0(不可见)和1.0(完全不透明)之间的浮点数。如果设置为1

  • 在canvas中进行绘制时,不管是文本、图形、还是图像,也不管是描边还是填充,都可以通过设置上下文对象的相关属性,来为它们设置阴影。这些属性及含义见表 4‑4: 表 4‑4 阴影的属性及含义 属性 含义 shadowColor 阴影的颜色,其默认值为完全透明的黑色。因此,如果没有把该属性设置为不透明,则阴影是不可见的。该属性只能设置为一个表示颜色的字符串,不能使用渐变或图案。使用半透明的阴影可以产