2017-03-31 14 views
1

私はcassandraでデータをインデックスに登録して、クラウドでホストされている弾性検索を行っています。私は、トランスポートクライアントを使用して簡単に弾性検索でダミーデータを接続および索引付けすることができます。しかし、私がpandファイルにdatastaxドライバの依存関係を追加してcassandraに接続すると、私はexeptionsを取得します。奇妙なことは、私はカッサンドラクラスターにもつながっていないということです。糸に予めおかげで同じプログラムからcassandraとelastic searchを呼び出す際に例外が発生する

例外 "メイン" java.lang.AbstractMethodError:io.netty.util.concurrent.MultithreadEventExecutorGroup.newChild(Ljava/UTIL /同時/エグゼキュータ; [Ljava /ラング/オブジェクト;)リオ/ 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) at io.netty.channel.MultithreadEventLoopGroup。(MultithreadEventLoopGroup.java:49) at io.netty.channel.nio.NioEventLoopGroup。(NioEventLoopGroup.java:68) at io.netty.channel .Nio.NioEventLoopGroup。(NioEventLoopGroup.java:63) at io.netty.channel.nio.NioEventLoopGroup(NioEventLoopGroup.java:54) at org.elasticsearch.transport.netty4.Netty4Transport.createBootstrap(Netty4Transport.java:201) ) 、org.elasticsearch。 transport.netty4.Netty4Transport.doStart(Netty4Transport.java:172) at org.elasticsearch.xpack.security.transport.netty4.SecurityNetty4Transport.doStart(SecurityNetty4Transport.java:74) at org.elasticsearch.common.component.AbstractLifecycleComponent。 (AbstractLifecycleComponent.java:69) at org.elasticsearch.transport.TransportService.doStart(TransportService.java:196) (TransportClient.java:268) at 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)

+0

ルートはhttp://stackoverflow.com/questions/17969365/whyi-i-amgetting-java-lang-abstractmethoderror-errorsです。なぜ私は答えはありませんが、コンパイル時の依存性と実行時の依存性との不一致があると思います。 –

+0

ええ、ダウンロードしたJARの潜在的な競合をチェックしてください。 Elasticの依存関係には2つの異なるバージョンがあるかもしれません(おそらく、cassandraはあなたが特に含むものよりも古いものに依存します)。このような問題は本当に厄介なものになります。 –

答えて

1

DataStax JavaドライバのNetty依存性と他のライブラリの依存性との間の潜在的な競合を回避するには、ドライバ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のような他のビルドツールではクラシファイアを指定する方法が必要です。そうでなければ、影付きのjarをmavenから直接ダウンロードできます。

+0

それは働いた。あなたの助けに感謝します。 – Aromadz

関連する問題