Springboot2.0集成 cassandra guava问题

Caused by: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback
	at com.datastax.driver.core.GuavaCompatibility.selectImplementation(GuavaCompatibility.java:136) ~[cassandra-driver-core-3.4.0.jar:?]
	at com.datastax.driver.core.GuavaCompatibility.<clinit>(GuavaCompatibility.java:52) ~[cassandra-driver-core-3.4.0.jar:?]
	at com.datastax.driver.core.Cluster.<clinit>(Cluster.java:68) ~[cassandra-driver-core-3.4.0.jar:?]
	at org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration.cassandraCluster(CassandraAutoConfiguration.java:67) ~[spring-boot-autoconfigure-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration$$EnhancerBySpringCGLIB$$2c22fb7a.CGLIB$cassandraCluster$0(<generated>) ~[spring-boot-autoconfigure-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration$$EnhancerBySpringCGLIB$$2c22fb7a$$FastClassBySpringCGLIB$$ee73f3df.invoke(<generated>) ~[spring-boot-autoconfigure-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361) ~[spring-context-5.0.7.RELEASE.jar:5.0.7.RELEASE]
	at org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration$$EnhancerBySpringCGLIB$$2c22fb7a.cassandraCluster(<generated>) ~[spring-boot-autoconfigure-2.0.3.RELEASE.jar:2.0.3.RELEASE]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_91]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_91]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]

原因:项目中指定了guava版本为27,Cassandra驱动在判断guava>26版本时出现问题,有bug,最新版本已fix

解决方法:

1.修改Cassandra驱动版本,显示指定版本

<dependency>
          <groupId>com.datastax.cassandra</groupId>
          <artifactId>cassandra-driver-core</artifactId>
          <version>3.6.0</version>
        </dependency>

2.重写Cassandra自带的判断guava版本的类:com.datastax.driver.core.GuavaCompatibility, 可参考最新的驱动中的写法

3.不在pom里面指定guava版本

转载于:https://my.oschina.net/u/1444582/blog/2962399

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值