私は次のエラー見ている:cluster.connect()
が呼び出されjava.lang.NoClassDefFoundErrorが:COM/Googleは/共通/ utilに/同時/ FutureFallback
java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback
:
String hosts = CassandraClientUtil.getHost();
String localDC = CassandraClientUtil.getLocalDC();
Cluster cluster = null;
if (StringUtils.isNotEmpty(localDC))
{
cluster = Cluster.builder().addContactPoints(hosts.split(","))
.withCredentials(CassandraCopsComponentLogger.USER_NAME, CassandraCopsComponentLogger.AUTH_CODE)
.withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_ONE))
.withLoadBalancingPolicy(new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().withLocalDc(localDC).build())).build();
}
else
{
cluster = Cluster.builder().addContactPoints(hosts.split(","))
.withCredentials(CassandraCopsComponentLogger.USER_NAME, CassandraCopsComponentLogger.AUTH_CODE)
.withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_ONE)).build();
}
Session session = cluster.connect();
CassandraCopsComponentLogger.mappingManager = new MappingManager(session);
ポンポンを.xmlには次の依存関係があります。
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>16.0.1</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.1.9</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
<version>3.9.0.Final</version>
</dependency>
<dependency>
<groupId>com.codahale.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>2.1.9</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
私はpostover stackflowflow here グアバのバージョンを16.0.1にアップグレードすることをお勧めしましたが、それは私の問題を解決するのに役立ちませんでした。私がcassandraを初めて知りましたので、ここからのいくつかの指示が本当に役に立ちます。バックグラウンドを追加するには、このプロジェクトをスタンドアロンプロジェクトとして使用します。このプロジェクトを他のプロジェクトへの依存関係として組み込むと、このランタイムエラーが発生します。
Guava 14にFutureFallbackが導入されました。あなたが指定したバージョン(16.0.1)が考慮されていないと思われ、非常に古いバージョンが代わりに使用されています。あなたは "mvn dependency:resolve"を実行し、あなたのビルドで解決されたGuavaの実際のバージョンを確認できますか? – adutra
@adutraそして、グアバ20に** **取り除いた後、グアバ19で非推奨:https://google.github.io/guava/releases/19.0/api/docs/com/google/common/util/concurrent/FutureFallback .html –
それは本当です、我々はそれを認識しており、それを取り替えることに取り組んでいます:https://datastax-oss.atlassian.net/browse/JAVA-1328。現在、ドライバーはGuava 20で作業できません。 – adutra