java - 从同一程序调用 cassandra 和 elastic search 时出现异常

标签 java cassandra elasticsearch-5 datastax-java-driver

我正在尝试将 cassandra 中的数据索引到云中托管的 Elasticsearch 。我可以使用传输客户端轻松地通过 Elasticsearch 连接和索引虚拟数据。但是,当我在 pom 文件中添加 datastax 驱动程序依赖项以连接到 cassandra 时,出现以下异常。奇怪的是我什至没有连接到 cassandra 集群。 提前致谢

线程“main”中出现异常 java.lang.AbstractMethodError: io.netty.util.concurrent.MultithreadEventExecutorGroup.newChild(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Lio/netty/util/concurrent/事件执行器; 在 io.netty.util.concurrent.MultithreadEventExecutorGroup。(MultithreadEventExecutorGroup.java:84) 在 io.netty.util.concurrent.MultithreadEventExecutorGroup。(MultithreadEventExecutorGroup.java:58) 在 io.netty.util.concurrent.MultithreadEventExecutorGroup。(MultithreadEventExecutorGroup.java:47) 在 io.netty.channel.MultithreadEventLoopGroup.(MultithreadEventLoopGroup.java:49) 在 io.netty.channel.nio.NioEventLoopGroup.(NioEventLoopGroup.java:68) 在 io.netty.channel.nio.NioEventLoopGroup.(NioEventLoopGroup.java:63) 在 io.netty.channel.nio.NioEventLoopGroup.(NioEventLoopGroup.java:54) 在 org.elasticsearch.transport.netty4.Netty4Transport.createBootstrap(Netty4Transport.java:201) 在 org.elasticsearch.transport.netty4.Netty4Transport.doStart(Netty4Transport.java:172) 在 org.elasticsearch.xpack.security.transport.netty4.SecurityNetty4Transport.doStart(SecurityNetty4Transport.java:74) 在 org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:69) 在 org.elasticsearch.transport.TransportService.doStart(TransportService.java:196) 在 org.elasticsearch.common.component.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:69) 在 org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:208) 在 org.elasticsearch.client.transport.TransportClient.(TransportClient.java:268) 在 org.elasticsearch.transport.client.PreBuiltTransportClient.(PreBuiltTransportClient.java:125) 在 org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:55) 在 org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:50) 在 org.elasticsearch.xpack.client.PreBuiltXPackTransportClient.(PreBuiltXPackTransportClient.java:46)

最佳答案

为了解决 DataStax java 驱动程序对 Netty 的依赖关系和其他库对 maven 的依赖关系之间的潜在冲突,您可以使用驱动程序 jar 的“阴影”分类器,如 'Using the shaded jar' page 上的驱动程序文档中所述。 :

<dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>3.2.0</version>
    <classifier>shaded</classifier>
    <!-- Because the shaded JAR uses the original POM, you still need
        to exclude this dependency explicitly: -->
    <exclusions>
        <exclusion>
        <groupId>io.netty</groupId>
        <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

请注意,如果您不使用maven,其他构建工具(例如gradle)应该有一种指定分类器的方法,否则您可以直接从maven下载shaded jar。

关于java - 从同一程序调用 cassandra 和 elastic search 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43145196/

相关文章:

elasticsearch - 如何在弹性查询中对多个消息进行分组。默认情况下是否将其分组?

java - 获取 JButton 的显式设置前景色

java - 使用 Java 连接到 heroku Postgres 数据库

Cassandra 验证失败错误 - 修复 session 因错误而失败

apache-spark - 如何指定多个Spark Standalone master(对于spark.master属性)?

java - Hector 与 CQL 的集成

java - IntelliJ 2019.2.2 中缺少 JBoss 插件

java - 3D 到 2D 投影

elasticsearch - ES聚合内部查询

elasticsearch - Elasticsearch过滤器与多个ID的词条查询