spring数据cassandra ImmutableMap异常

时间:2017-02-09 04:40:36

标签: spring-boot spring-data spring-data-cassandra

Spring boot Cassandra starter 1.5.1抛出异常:

java.lang.ClassNotFoundException: com.google.common.util.concurrent.AsyncFunction

java.lang.ClassNotFoundException: com.google.common.collect.ImmutableMap 

尝试创建CassandraClusterFactoryBean对象时。

有解决方法吗?

一个新的Spring数据 - 来自start.spring.io的cassandra项目在测试运行中也会引发类似的异常。

1 个答案:

答案 0 :(得分:0)

ClassNotFoundException表示这些类不在您的类路径中,那么您应该将此依赖项添加到您的pom.xml

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>16.01</version>
</dependency>

如果您不使用maven,只需转到此link并下载jar文件并将其包含在java类路径中 根据您执行项目的方式,此依赖项的此版本将更改,只需查找spring-data版本的兼容版本here

更新: 您应该使用guava 16.01 method,因为在guava 19 method中该方法不再有效,因为API说

@Deprecated
@GwtIncompatible(value="TODO")
public static ListeningExecutorService sameThreadExecutor()
Deprecated. Use directExecutor() if you only require an Executor and newDirectExecutorService() if you need a ListeningExecutorService. 
This method will be removed in August 2016.

根据编译的依赖项部分中的this,guava是16.01