2015-12-09 110 views
2

已安裝CassandraVM-2.0.7.ova。哪個版本的昆德拉能夠與這個版本的Cassandra正常工作?面對太多試圖獲取這些信息的問題。可能是我的配置錯誤。這些信息是否記錄在某個地方?在persistence.xml中

<dependency> <groupId>com.impetus.kundera.client</groupId> <artifactId>kundera-cassandra</artifactId> <version>3.2</version> </dependency>昆德拉版本兼容性文檔

屬性如下:

我試着用這個Maven的依賴

<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");

發生此異常:

異常線程 「main」 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)
at com.impetus.kundera.configure.ClientMetadataBuilder.buildClientFactoryMetadata(Cli entMetadataBuilder.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(持久性。 java:79)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
在Main.main(Main.java:16)

然後我和昆德拉(2.4)的更老版本的嘗試,面臨同樣的問題。我想我錯過了一些基本的東西。

刪除了persistence.xml中的自動模式生成選項,並且仍然面臨相同的問題(無法創建新的Cassandra連接。org.apache.thrift.transport.TTransportException:讀取負的幀大小(-2113929216)! 。)

在服務器上,這是個例外:

java.lang.ArrayIndexOutOfBoundsException:47
在org.apache.cassandra.transport.Message $ Type.fromOpcode(消息。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 )

+1

嘗試使用[最新版本](http://mvnrepository.com/artifact/com.impetus.kundera.client/kundera-cassandra/3.2)..您可以參考此[文檔](https:// github 5分鐘) –

+1

您可以添加錯誤和例外以及您嘗試的代碼嗎? –

+1

如果你用所有這些細節編輯你的問題,對社區會更好。 –

回答

0

節儉客戶端需要使用端口9160而不是9042.現在它工作正常。