2

我正在尝试通过 JDBC 连接到 Datastax 社区版服务器 2.1.2,但无论我尝试做什么,我都会收到以下错误,即使发出一个非常基本的命令,例如select * from system_traces.events;

InvalidRequestException(why:Keyspace 'keyspace1' does not exist)

通过发出相同的命令可以cqlsh正常工作,所以这似乎是一个 JDBC 问题。

InvalidRequestException(why:Keyspace 'keyspace1' does not exist) 
    at org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:229):229 
    at org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:92):92 
    at java.sql.DriverManager.getConnection(DriverManager.java:664):664 
    at java.sql.DriverManager.getConnection(DriverManager.java:270):270 
    at railo.commons.db.DBUtil.getConnection(DBUtil.java:109):109 
    at railo.runtime.db.DatasourceConnectionPool.loadDatasourceConnection(DatasourceConnectionPool.java:89):89 
    at railo.runtime.db.DatasourceConnectionPool.getDatasourceConnection(DatasourceConnectionPool.java:81):81 
    at railo.runtime.db.DatasourceManagerImpl.getConnection(DatasourceManagerImpl.java:65):65 
    at railo.runtime.tag.Query.executeDatasoure(Query.java:696):696 ...

有任何想法吗?蒂亚!

4

1 回答 1

3
InvalidRequestException(why:Keyspace 'keyspace1' does not exist) 

此异常意味着您正在尝试查询尚未添加到 Cassandra 的键空间(在本例中为“Keyspace1”)。在查询之前尝试创建键空间。

您可能正在执行一个SELECT * FROM "Keyspace1"."Standard1"您没有看到的选择 (),或者将初始化参数传递给 JDBC,告诉它连接到 Keyspace1。通过搜索您拥有的查询,特别是寻找Keyspace1(或“Keyspace1”,因为在这种情况下,键空间名称区分大小写),验证您的代码不是在寻找不存在的键空间。

在旁注中,“Keyspace1”.“Standard1”往往是用于 cassandra 示例的标准 ks.cf 对,因此最好为它们扫描代码以确保在查询它们之前创建它们。

于 2014-11-24T17:50:16.453 回答