Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exception while running Spring boot cassandra project

I downloaded the spring initializer project by selecting few dependencies for web, security, validation and spring-boot cassandra. When I try to run the ./gradlew bootrun I'm getting the following exception during startup

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'session' defined in class path resource [org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfiguration.class]: Invocation of init method failed; nested exception is com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces)) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538) ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118) ~[spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at com.anirudh.myretail.CassandratestApplication.main(CassandratestApplication.java:10) [main/:na] Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces)) at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:240) ~[cassandra-driver-core-2.1.9.jar:na] at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:86) ~[cassandra-driver-core-2.1.9.jar:na] at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1429) ~[cassandra-driver-core-2.1.9.jar:na] at com.datastax.driver.core.Cluster.init(Cluster.java:162) ~[cassandra-driver-core-2.1.9.jar:na] at com.datastax.driver.core..connectAsync(Cluster.java:341) ~[cassandra-driver-core-2.1.9.jar:na] at com.datastax.driver.core.Cluster.connectAsync(Cluster.java:314) ~[cassandra-driver-core-2.1.9.jar:na] at com.datastax.driver.core.Cluster.connect(Cluster.java:252) ~[cassandra-driver-core-2.1.9.jar:na] at org.springframework.cassandra.config.CassandraCqlSessionFactoryBean.afterPropertiesSet(CassandraCqlSessionFactoryBean.java:82) ~[spring-cql-1.3.2.RELEASE.jar:na] at org.springframework.data.cassandra.config.CassandraSessionFactoryBean.afterPropertiesSet(CassandraSessionFactoryBean.java:43) ~[spring-data-cassandra-1.3.2.RELEASE.jar:na] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]

like image 447
ak123 Avatar asked Dec 25 '22 09:12

ak123


1 Answers

com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces

The Cassandra Java Driver Spring Data is using is 2.1.9

The Cassandra version you're using is probably 3.x. Since 3.x all the meta data has been moved to keyspace system_schema

The solution to your issue are:

  • downgrade your version to Cassandra 2.2.x or 2.1.x
  • wait for Spring Data Cassandra to upgrade the driver version to 3.0.0
  • if you don't want to wait, use Achilles 5.2.0 which is an object mapper that support Cassandra 3.x. Note: I'm the creator of Achilles
  • if you don't want to wait, use the driver-mapper module that comes with the Cassandra Java Driver
like image 99
doanduyhai Avatar answered Jan 22 '23 11:01

doanduyhai