从 SoapUI 连接到 Cassandra 3.0.3(使用 9042)

Posted

技术标签:

【中文标题】从 SoapUI 连接到 Cassandra 3.0.3(使用 9042)【英文标题】:Connect to Cassandra 3.0.3 (using 9042) from SoapUI 【发布时间】:2017-02-19 23:34:51 【问题描述】:

我想通过 JDBC 步骤从 SoapUI 连接到 Cassandra DB。并且还想使用 cql 进行不同的查询。 注意:我阅读了关于类似问题的现有答案,但它们对结果没有帮助。

前提条件:Cassandra DB(Cassandra 版本 3.0.3),在 IP smth 像 10.x.x.x,端口 9042 的服务器上

完成:我将以下 jar 添加到 <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)

问题:如何解决这个问题、建立连接以及查询数据库?

【问题讨论】:

您知道cassandra-all 包括Cassandra 服务器本身吗? 谢谢,将重做 jar 列表。 您知道自己在做什么,还是只是添加您找到的随机 jar 的随机版本? 我只是关注已经给出的类似主题的答案。 你在关注this one?这有一些非常糟糕和/或过时的答案。今天晚些时候我可能会写一个更好的。 【参考方案1】:

您似乎正在尝试将 rpc(thrift)客户端连接到本机 (CQL) 端口。

默认情况下,9042 应该是本机端口,9160 应该是 rpc 端口。这些可能已更改:查看服务器的 cassandra.yaml 并找到为 native_transport_port 和/或 rpc_port 配置的内容。

请记住,自 Cassandra 2.x 以来,thrift/rpc 已被弃用,您应该尽可能使用 CQL。

【讨论】:

谢谢,会的。此外,从 DataStax 检查 - 工作正常(查询等);在通过 9042 添加的 DataStax 连接中 如果这个JDBC驱动使用thrift,那么你需要使用端口9160。 在服务器上的 yaml 中检查(我无权更改任何内容,所以只是信息): native_transport_port: 9042; rpc_port:9160; //////继续研究,感谢您的初步建议。 那么您是否将连接字符串切换为 9160? 是的,我改变了,并且似乎建立了连接。但是在相同的 cql 查询(通过 SoapUI)上没有结果,它在 DataStax 中成功返回结果。

以上是关于从 SoapUI 连接到 Cassandra 3.0.3(使用 9042)的主要内容,如果未能解决你的问题,请参考以下文章

从本地连接到客户端 cassandra

Cassandra - 开发中心无法连接到 Cassandra 集群的所有 3 个节点

如何使用 Docker Desktop for Windows 从主机连接到 Cassandra

将 Spark SQL Hive 服务器连接到 Cassandra?

IIS 连接到 SoapUi 时握手失败 (40)

将 Apache Cassandra 连接到 DataGrip