java - Cassandra 的 EmbeddedCassandraService 抛出 InvalidRequestException : unconfigured table schema_keyspaces

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

我们的应用程序使用 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 应该在每次启动时从头开始创建系统表(并且不应该有任何模式可以迁移)。有没有人知道可能导致此问题的原因?

最佳答案

问题实际上是嵌入式 Cassandra 服务被启动了两次。

关于java - Cassandra 的 EmbeddedCassandraService 抛出 InvalidRequestException : unconfigured table schema_keyspaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45289071/

相关文章:

cassandra - CQLSH:将unix时间戳转换为日期时间

maven - java.lang.VerifyError : AbstractEpollUnsafe exception on Vertx, Dse应用程序

cassandra - DataStax Devcenter 无法连接到远程 cassandra 数据库

java - Spring WebFlow 到 MVC 转换问题

java - Hibernate - 同步映射同一列的两个属性

node.js - Node js Cassandra 驱动程序 - 配置重试策略

java - 未找到请求的操作的编解码器 : [map<varchar, int> <-> java.util.Map];问题 Apache Cassandra

java - Keycloak 7.0.0standalone.sh启动错误: IJ000604: Throwable while attempting to get a new connection: null

java - 有关使用@PreAuthorize 时抛出 Access Denied 异常的方法的信息

linux - 文件内容无节标题