EmbeddedCassandraService от Cassandra выдает InvalidRequestException: несконфигурированная таблица schema_keyspaces

Наше приложение использует EmbeddedCassandraService для модульного тестирования. Мы используем Cassandra 3.11 и java-драйвер от Datastax 3.3.0.

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 3.3.0. Я не понимаю, почему проблема возникает в LegacySchemaMigrator, поскольку этот EmbeddedCassandraService должен создавать системные таблицы с нуля каждый раз, когда он запускается (и не должно быть никакой схемы для миграции). Кто-нибудь знает, что может быть причиной этой проблемы?


person cscan    schedule 24.07.2017    source источник


Ответы (1)


На самом деле проблема заключалась в том, что EmbeddedCassandraService запускался дважды.

person cscan    schedule 24.07.2017