私は今までのすべての最新バージョンである以下の依存関係を使用してアプリケーションを作成しています。原因:java.lang.NoSuchMethodError:com.datastax.driver.core.TypeCodec.getJavaType()Lcom/google/common/reflect/TypeToken;
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M5</version>
</parent>
`<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>2.0.5</</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.3.0</version>
</dependency>`
私はいくつかの研究を行った後、この例外
"Caused by: java.lang.NoSuchMethodError: com.datastax.driver.core.TypeCodec.getJavaType()Lcom/google/common/reflect/TypeToken;"
を取得し、私は理由がspark-cassandra-connector_2.10
瓶もcom.datastax.driver
クラスファイルが含まれていることであり、それはまたTypeCodeC.class
を持っていたが、これはcassandra-driver-core
でTypeCodeC.class
ファイルと異なっています
これまで2つの解決策があります。
maven-shade-plugin
を使用して、クラスファイルをjarから除外します。しかし、これには余分な作業が必要です。何らかの理由で、私はプロジェクトをjarファイルにコンパイルし、このjarファイルをプロジェクトの依存ファイルとして追加するだけです。私はこれが良い解決策だとは思わない私は
/com/datastax/driver
フォルダとファイルをjarから直接削除します。このコマンドzip -d /Users/cicidi/.m2/repository/com/datastax/spark/spark-cassandra-connector_2.10/2.0.5/spark-cassandra-connector_2.10-2.0.5.jar /com/datastax/driver/*
そして、それは作品を使用してください!次に、mavenを使用する代わりに、このjarをプロジェクトに追加する必要があります(ローカルでmavenを使用することはできますが、再度jarを取り出すとうまくいきません)。
私は見つからないインターネットでの答え。私はこの問題を解決したスマートな人がいることを知っています。しかしその前に、私はこの問題を直ちに解決したい人を助けるためにこの答えを掲示しています。
とはバージョンの競合を持っていません。その後、あなた自身の回答を投稿することができます。https://stackoverflow.com/help/self-answerを参照してください。題名に「(解決された)」を入れないでください。 – Mel