2

安装 CassandraVM-2.0.7.ova。哪个版本的 Kundera 可以与这个版本的 Cassandra 一起正常工作?试图获取此信息时面临太多问题。可能是我的配置错误。这些信息是否记录在某处?

我尝试了这个 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
at org.apache.cassandra.transport.Message$Type.fromOpcode(Message.java:106)
at org.apache.cassandra.transport.Frame$Decoder.decode(Frame.java:168)
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:425)

4

1 回答 1

0

Thrift 客户端需要使用端口 9160 而不是 9042。现在它工作正常。

于 2015-12-10T08:05:25.287 回答