web-dev-qa-db-fra.com

com.datastax.driver.core.exceptions.InvalidQueryException: table non configurée schema_keyspaces

J'essaie de configurer les données de printemps avec cassandra. Mais je reçois une erreur ci-dessous lorsque mon application se déploie dans Tomcat.

Lorsque je vérifie la connexion, elle est disponible sur le port donné. (127.0.0.1:9042). J'ai inclus la trace de la pile et la configuration du ressort ci-dessous. Quelqu'un at-il une idée de cette erreur?

Trace de pile complète:

2015-12-06 17:46:25 ERROR web.context.ContextLoader:331 - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cassandraSession': Invocation of init method failed; nested exception is com.datastax.driver.core.exceptions.NoHostAvailableException: All Host(s) tried for query failed (tried: /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:1572)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.Java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.Java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.Java:736)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.Java:759)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:480)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.Java:434)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.Java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.Java:106)
    at org.Apache.catalina.core.StandardContext.listenerStart(StandardContext.Java:4994)
    at org.Apache.catalina.core.StandardContext.startInternal(StandardContext.Java:5492)
    at org.Apache.catalina.util.LifecycleBase.start(LifecycleBase.Java:150)
    at org.Apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.Java:901)
    at org.Apache.catalina.core.ContainerBase.addChild(ContainerBase.Java:877)
    at org.Apache.catalina.core.StandardHost.addChild(StandardHost.Java:649)
    at org.Apache.catalina.startup.HostConfig.deployDirectory(HostConfig.Java:1245)
    at org.Apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.Java:1895)
    at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:511)
    at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at Java.lang.Thread.run(Thread.Java:745)
Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All Host(s) tried for query failed (tried: /127.0.0.1:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.Java:223)
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.Java:78)
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.Java:1230)
    at com.datastax.driver.core.Cluster.init(Cluster.Java:157)
    at com.datastax.driver.core.Cluster.connect(Cluster.Java:245)
    at com.datastax.driver.core.Cluster.connect(Cluster.Java:278)
    at org.springframework.cassandra.config.CassandraCqlSessionFactoryBean.afterPropertiesSet(CassandraCqlSessionFactoryBean.Java:82)
    at org.springframework.data.cassandra.config.CassandraSessionFactoryBean.afterPropertiesSet(CassandraSessionFactoryBean.Java:43)

================================================== =================

Configuration du ressort:

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans ...>

    <cassandra:cluster id="cassandraCluster"
                       contact-points="127.0.0.1" port="9042" />
    <cassandra:converter />

    <cassandra:session id="cassandraSession" cluster-ref="cassandraCluster"
                       keyspace-name="blood" />

    <cassandra:template id="cqlTemplate" />


    <cassandra:repositories base-package="com.blood.dao.nosql" />
    <cassandra:mapping entity-base-packages="com.blood.domain.nosql" />

</beans:beans>
26
Harsha

Le problème est que Spring Data Cassandra (en décembre 2015 lorsque j'écris ceci) ne fournit pas de support pour Cassandra 3.x. Voici un extrait d'un conversation avec l'un des développeurs du canal #spring sur freenode:

[13:49] <_amicable> Salut à tous, est-ce que quelqu'un sait si les données de printemps cassandra supporte cassandra 3.x? Toutes les dépendances et les pilotes de datastax semblent être 2.x

[13:49] <@_ ollie> amiable: Pas dans un avenir proche.

[13:49] <_amicable> _ollie: merci.

[13:50] <_amicable> Je vais alors regarder les mérites relatifs de 2.x vs 3.x;)

[13:51] <@_ ollie> SD Cassandra est un projet communautaire (jusqu'à présent) et sa progression dépend fortement du temps que les développeurs peuvent réellement y consacrer.

[13:51] <@_ ollie> Une personne se joindra à l'équipe en février 2016 pour aligner davantage le projet sur les principaux projets Spring Data.

24
Will Faithfull

Il semble que vous utilisiez une ancienne version du pilote avec Cassandra 3.0. Cassandra 3.0 a changé sa représentation des métadonnées de schéma interne et seuls les derniers pilotes peuvent analyser) ces métadonnées.

Utilisez Java Cassandra driver .0.0-alpha5 pour vous connecter à Cassandra 3.0.

5
Adam Holmberg