astyanax cassandra:类型org.apache.cassandra.thrift.Cassandra $ Client无法解析。它是从所需的.class文件间接引用的

时间:2013-07-24 01:11:27

标签: cassandra gradle astyanax

我的实习需要我熟悉cassandra。我从以下网站下载了astyanax cassandra: https://github.com/Netflix/astyanax

通过命令从源代码构建astyanax之后: git clone git@github.com:Netflix / astyanax.git cd astyanax ./gradlew build

我创建了一个新的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 $ Client类型无法解析。它是从所需的.class文件间接引用的

我需要专家帮助。非常感谢!!!

2 个答案:

答案 0 :(得分:3)

听起来你错过了thrift依赖(thrift jar文件)。或者你正在使用不兼容的节俭版本。简单的解决方案是使用Maven并将Astyanax依赖项添加到您的项目中。更复杂的解决方案是验证您导入的thrift版本是否与正在使用的Astyanax版本兼容。

Maven依赖(将其添加到您的pom文件中):

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

您可以使用Astyanax's wiki为Astyanax客户端制作兼容版本的Thrift。但是知道你从Github构建项目,你想要最新的与Cassandra兼容的节俭,所以你在Thrift 9.0+之后(例如libthrift-0.9.0.jar)。

答案 1 :(得分:0)

我认为首先应该在本地安装Cassandra Server。您可以从Cassandra Repo找到最新来源。

然后您可以按照link配置Cassandra Server。虽然我不认为您必须更改配置文件中的任何内容,因为cassandra源已正确配置为在本地模式下运行。

然后从IDE创建一个Maven项目,添加@Lyuben Todorov所显示的依赖项,即

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

然后尝试Astyanax wiki

中的一些测试示例