我想通过JDBC步骤从SoapUI连接到Cassandra DB。并且想要使用cql进行不同的查询。 注意:我在这里阅读了类似问题的答案,但结果没有帮助。
前提条件:Cassandra DB(Cassandra 3.0.3版),服务器上的IP smth如10.x.x.x,端口9042
完成:我将以下广告添加到<soapui>../bin/ext
:
- cassandra-all-3.9
- cassandra-clientutil-3.9
- cassandra-jdbc-1.2.5
- cassandra-thrift-3.9
- libthrift-0.9.3
- slf4j-api-1.7.7
- thrift-0.6.1
在SoapUI中,在配置中,我配置了:
Driver : org.apache.cassandra.cql.jdbc.CassandraDriver
Connection String : jdbc:cassandra://10.x.x.x:9042/profilename
但是尝试测试连接 - 我只收到
java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException:
Read a negative frame size (-2080374784)
问题:如何解决此问题,建立连接以及向DB进行查询?
答案 0 :(得分:2)
您似乎正在尝试将rpc(thrift)客户端连接到本机(CQL)端口。
默认情况下,9042应为本机端口,9160为rpc端口。这些可能已更改:查看服务器的cassandra.yaml并查找已为native_transport_port
和/或rpc_port
配置的内容。
请记住,自Cassandra 2.x以来,thrift / rpc已被弃用,您应尽可能使用CQL。