已安装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");
发生了这个异常:
线程中的异常&#34; main&#34; 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)
at 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)
答案 0 :(得分:0)
Thrift客户端需要使用端口9160而不是9042.现在它工作正常。