【问题标题】:Cassandra's EmbeddedCassandraService throws InvalidRequestException: unconfigured table schema_keyspacesCassandra 的 EmbeddedCassandraService 抛出 InvalidRequestException: unconfigured table schema_keyspaces
【发布时间】:2017-12-30 12:57:50
【问题描述】:

我们的应用程序使用 EmbeddedCassandraService 进行单元测试。我们正在使用 Cassandra 3.11 和来自 Datastax 3.3.0 的 java 驱动程序。

EmbeddedCassandraService cassandraService = new EmbeddedCassandraService();
cassandraService.start();

在测试我们的域类时,我们可以完美地使用嵌入式 cassandra。但是,当将它与我们的 API 测试(具有不同的依赖集)一起使用时,它会引发以下异常:

Caused by: org.apache.cassandra.exceptions.InvalidRequestException: unconfigured table schema_keyspaces
    at org.apache.cassandra.thrift.ThriftValidation.validateColumnFamily(ThriftValidation.java:115)
    at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:920)
    at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:915)
    at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:557)
    at org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:253)
    at org.apache.cassandra.cql3.QueryProcessor.executeOnceInternal(QueryProcessor.java:354)
    at org.apache.cassandra.schema.LegacySchemaMigrator.query(LegacySchemaMigrator.java:1044)
    at org.apache.cassandra.schema.LegacySchemaMigrator.readSchema(LegacySchemaMigrator.java:173)
    at org.apache.cassandra.schema.LegacySchemaMigrator.migrate(LegacySchemaMigrator.java:77)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:256)
    at org.apache.cassandra.service.CassandraDaemon.init(CassandraDaemon.java:503)
    at org.apache.cassandra.service.EmbeddedCassandraService.start(EmbeddedCassandraService.java:51)
    at com.company.project.schema.cassandra.config.EmbeddedCassandraConfiguration.session(EmbeddedCassandraConfiguration.java:24)

我们不确定为什么一个模块可以工作,而另一个模块不能工作,因为 cassandra 依赖项是相同的。此外,两个模块都不依赖于spring-data-cassandra,并且两个模块都使用datastax's 3.3.0 driver。我对为什么在 LegacySchemaMigrator 中出现问题感到困惑,因为这个 EmbeddedCassandraService 应该在每次启动时从头开始创建系统表(并且不应该有任何模式可以迁移)。有没有人对可能导致此问题的原因有任何见解?

【问题讨论】:

    标签: java cassandra datastax-java-driver cassandra-3.0


    【解决方案1】:

    问题实际上是 EmbeddedCassandraService 被启动了两次。

    【讨论】:

      猜你喜欢
      • 2015-06-03
      • 2011-03-09
      • 2017-10-18
      • 2012-07-03
      • 2013-05-23
      • 1970-01-01
      • 2015-05-18
      • 2014-01-05
      • 2022-12-28
      相关资源
      最近更新 更多