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

Aro*_*adz 2 java cassandra datastax-java-driver elasticsearch-5

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

线程“主”中的异常 java.lang.AbstractMethodError: io.netty.util.concurrent.MultithreadEventExecutorGroup.newChild(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Lio/netty/util/concurrent/EventExecutor; 在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)

And*_*ert 5

为了解决 DataStax java 驱动程序对 Netty 的依赖性与其他库对 maven 的依赖性之间的潜在冲突,您可以使用驱动程序 jar 的“阴影”分类器,如“使用阴影 jar”页面上的驱动程序文档中所述:

<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>
Run Code Online (Sandbox Code Playgroud)

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