Установлена CassandraVM-2.0.7.ova. Какая версия Кундеры правильно работает с этой версией Кассандры? Столкнувшись со слишком многими проблемами, пытаясь получить эту информацию. Может быть моя ошибка в настройке. Эта информация где-то задокументирована?
Я пытался использовать эту зависимость maven:<dependency>
<groupId>com.impetus.kundera.client</groupId>
<artifactId>kundera-cassandra</artifactId>
<version>3.2</version>
</dependency>
Свойства в файле persistence.xml выглядят следующим образом:
<persistence-unit name="cassandra_pu">
<provider>com.impetus.kundera.KunderaPersistence</provider>
<properties>
<property name="kundera.nodes" value="a.b.com" />
<property name="kundera.port" value="9042"/>
<property name="kundera.keyspace" value="KunderaExamples" />
<property name="kundera.dialect" value="cassandra" />
<property name="kundera.client.lookup.class" value="com.impetus.client.cassandra.thrift.ThriftClientFactory" />
<property name="kundera.ddl.auto.prepare" value="create" />
</properties>
</persistence-unit>
При попытке выполнить приведенный ниже оператор,
EntityManagerFactory emf = Persistence.createEntityManagerFactory("cassandra_pu");
это исключение произошло:
Исключение в потоке «основной» com.impetus.kundera.configure.schema.SchemaGenerationException: org.apache.thrift.transport.TTransportException: чтение отрицательного размера кадра (-2113929216)!
в com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.create(CassandraSchemaManager.java:264)
в com.impetus.kundera.configure.schema.api.AbstractSchemaManager.handleOperations(AbstractSchemaManager.java:264)
в com.impetus.kundera.configure.schema.api.AbstractSchemaManager.exportSchema(AbstractSchemaManager.java:115)
в com.impetus.client.cassandra.schemamanager.CassandraSchemaManager.exportSchema(CassandraSchemaManager.java:166)
в com.impetus.kundera.configure.SchemaConfiguration.configure(SchemaConfiguration.java:188)
в com.impetus.kundera.configure.ClientMetadataBuilder.buildClientFactoryMetadata(ClientMetadataBuilder.java:48)
в com. impetus.kundera.persistence.EntityManagerFactoryImpl.configureClientFactories(EntityManagerFactoryImpl.java:408)
в com.impetus.kundera.persistence.EntityManagerFactoryImpl.configure(EntityManagerFactoryImpl.java:161)
в com.impetus.kundera.persistence. EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:135)
в com.impetus.kundera.KunderaPersistence.createEntityManagerFactory(KunderaPersistence.java:85)
в javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
в javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
в Main.main(Main.java:16)
Затем я попробовал более старую версию Kundera (2.4) и столкнулся с той же проблемой. Думаю, я упускаю что-то фундаментальное.
Удален параметр автоматического создания схемы в файле persistence.xml, и я все еще сталкиваюсь с той же проблемой (невозможно создать новое соединение Cassandra. org.apache.thrift.transport.TTransportException: чтение отрицательного размера кадра (-2113929216)!.)
На сервере это исключение:
java.lang.ArrayIndexOutOfBoundsException: 47
в org.apache.cassandra.transport.Message$Type.fromOpcode(Message.java:106)
в org.apache.cassandra.transport.Frame$Decoder.decode(Frame .java:168)
на org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)