astyanax cassandra:无法解析org.apache.cassandra.thrift.cassandra$Client类型。它是从必需的.class文件间接引用的
我的实习需要我熟悉卡桑德拉。我从以下网站下载了astyanax cassandra: 通过以下命令从源代码构建astyanax后: git克隆git@github.com:Netflix/astyanax.git 阿斯蒂亚纳克斯光盘 /格拉德卢建筑 我创建了一个新的java项目,并从这里复制并粘贴示例代码: 现在问题出现了。我确实修复了路径配置,它导入了从gradlew构建生成的所有.jar文件。但有一行(长)代码用红色虚线突出显示:astyanax cassandra:无法解析org.apache.cassandra.thrift.cassandra$Client类型。它是从必需的.class文件间接引用的,cassandra,gradle,astyanax,Cassandra,Gradle,Astyanax,我的实习需要我熟悉卡桑德拉。我从以下网站下载了astyanax cassandra: 通过以下命令从源代码构建astyanax后: git克隆git@github.com:Netflix/astyanax.git 阿斯蒂亚纳克斯光盘 /格拉德卢建筑 我创建了一个新的java项目,并从这里复制并粘贴示例代码: 现在问题出现了。我确实修复了路径配置,它导入了从gradlew构建生成的所有.jar文件。但有一行(长)代码用红色虚线突出显示: context = new AstyanaxContex
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文件间接引用的
我需要专家的帮助。非常感谢 听起来您缺少了thrift依赖项(thrift jar文件)。要么是这样,要么你使用的是不兼容的节俭版本。简单的解决方案是使用Maven并将Astyanax依赖项添加到项目中。更复杂的解决方案是验证您导入的thrift版本是否与正在使用的Astyanax版本兼容 Maven依赖项(将其添加到pom文件):
com.netflix.astyanax
. 但是知道您是从Github构建项目的,您需要与Cassandra兼容的最新thrift,因此您需要thrift 9.0+(例如libthrift-0.9.0.jar
)。我认为首先您应该在本地服务器上正确安装Cassandra服务器。您可以从中找到最新的来源
然后,您可以按照以下步骤配置Cassandra服务器。尽管我认为您不必更改配置文件中的任何内容,因为cassandra source已正确配置为在本地模式下运行
然后从IDE创建一个Maven项目,添加@Lyuben-Todorov显示的依赖项,即
<dependency>
<groupId>com.netflix.astyanax</groupId>
<artifactId>astyanax</artifactId>
<version>1.56.42</version>
</dependency>
com.netflix.astyanax
我要试试看。Thx老兄!
<dependency>
<groupId>com.netflix.astyanax</groupId>
<artifactId>astyanax</artifactId>
<version>1.56.42</version>
</dependency>