2013-07-24 44 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

相关问题