我尝试通过JDBC连接到Datastax Community Edition服务器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 ...
有什么想法吗? TIA!
答案 0 :(得分:3)
InvalidRequestException(why:Keyspace 'keyspace1' does not exist)
此异常意味着您正在尝试查询尚未添加到Cassandra的密钥空间(在本例中为“Keyspace1”)。尝试在查询之前创建密钥空间。
你可能正在做一个你没有看到的select(SELECT * FROM "Keyspace1"."Standard1"
)或者将初始化参数传递给JDBC,告诉它连接到Keyspace1。通过搜索您的查询来验证您的代码没有查找不存在的密钥空间,特别是查找 Keyspace1 (或“Keyspace1”,因为在这种情况下, keyspace名称区分大小写)。
另一方面,“Keyspace1”。“Standard1”往往是用于cassandra示例的标准ks.cf对,所以最好扫描你的代码以确保它们是在它们出现之前创建的。查询。