2013-07-24 43 views
4

我的實習需要我熟悉cassandra。我下載了astyanax卡桑德拉: 混帳克隆[email protected]https://github.com/Netflix/astyanax

通過命令從源代碼構建astyanax後的Netflix/astyanax.git CD astyanax ./gradlew建立

我創建了一個新的Java項目和複製+粘貼示例代碼從這裏: https://github.com/Netflix/astyanax/blob/master/astyanax-examples/src/main/java/com/netflix/astyanax/examples/AstCQLClient.java

現在出現問題。我確實修復了路徑配置,該配置導入了從gradlew構建生成的所有.jar文件。但是,一個代碼(長)線由紅色虛線強調:

context = new AstyanaxContext.Builder() 
.forCluster("Test Cluster") 
.forKeyspace("test1") 
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()  
    .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE) 
) 
.withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool") 
    .setPort(9160) 
    .setMaxConnsPerHost(1) 
    .setSeeds("127.0.0.1:9160") 
) 
.withAstyanaxConfiguration(new AstyanaxConfigurationImpl()  
    .setCqlVersion("3.0.0") 
    .setTargetCassandraVersion("1.2")) 
.withConnectionPoolMonitor(new CountingConnectionPoolMonitor()) 
.buildKeyspace(ThriftFamilyFactory.getInstance()); 

警告消息是: 類型org.apache.cassandra.thrift.Cassandra $客戶端無法解析。它是從所需的.class文件間接引用的

我需要專家的幫助。非常感謝!!!

回答

3

聽起來像你缺少節儉依賴(thrift jar文件)。無論是或者你正在使用一個不兼容的節儉版本。簡單的解決方案是使用Maven並將Astyanax依賴項添加到您的項目中。更復雜的解決方案是驗證您導入的節儉版本是否與正在使用的Astyanax版本兼容。

Maven的依賴(添加到您的POM文件):

<dependency> 
    <groupId>com.netflix.astyanax</groupId> 
    <artifactId>astyanax</artifactId> 
    <version>1.56.42</version> 
</dependency> 

你可以工作,節儉的兼容版本使用Astyanax's wiki您Astyanax客戶端。但知道你從Github構建了這個項目,你需要最新的與Cassandra兼容的節點,所以你在Thrift 9.0+之後(例如libthrift-0.9.0.jar)。

+0

我想試試。 Thx男人! – user2612604

0

我認爲首先應該在本地正確安裝Cassandra服務器。你可以從Cassandra Repo找到最新的信息。

然後你可以按照這個link配置Cassandra服務器。雖然我不認爲你必須改變配置文件中的任何東西,因爲cassandra源代碼已正確配置爲在本地模式下運行。

然後從IDE創建一個Maven項目中,添加@Lyuben託多羅夫所示的依賴性即

<dependency> 
    <groupId>com.netflix.astyanax</groupId> 
    <artifactId>astyanax</artifactId> 
    <version>1.56.42</version> 
</dependency> 

然後嘗試一些測試例如從Astyanax wiki

+0

我要試一試。 Thx老兄! – user2612604

相關問題