如何将我的Java应用程序连接到通过docker运行的Cassandra?

时间:2018-06-12 06:52:25

标签: java docker cassandra database-connection

我有以下java代码:

String serverIP = "127.0.0.1";  
String keyspace = "testkeyspace"; 
Cluster cluster = Cluster.builder().addContactPoints(serverIP).build();  
Session session = cluster.connect(keyspace);

我试图用来检查我与Cassandra的连接。

我在我自己的机器上本地安装了Cassandra,并且连接成功。 我的maven项目正在使用以下

  

弹簧数据卡桑德拉   2.0.6.RELEASE

但是,当我尝试将我的java应用程序连接到由docker运行的Cassandra时(我的本地cassandra已停止),我遇到以下错误:

  

所有主机尝试查询失败(尝试:/127.0.0.1:9042   (com.datastax.driver.core.exceptions.TransportException:   [/127.0.0.1:9042]无法连接))

我不知道我的IP是否错误,但是在我的docker CQLSH上,每当我打开我的CQLSH时都会写入以下消息:

  

在127.0.0.1:9042连接到测试群集。   [cqlsh 5.0.1 | Cassandra 3.11.2 | CQL规范3.4.4 | Native protocol v4]使用HELP寻求帮助。

请帮助,我一定错过了这里的东西。谢谢!

1 个答案:

答案 0 :(得分:3)

只需在此添加我的答案,因为它已被接受为评论,以帮助其他人解决同样的问题。

您应该将您的Cassandra Docker容器端口暴露给localhost:

localhost:9042

现在可以from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome(executable_path = "E:\Ballance\chromedriver_win32\chromedriver") driver.get("https://airtel.in/store") inputElement = driver.find_element_by_id("autocomplete") inputElement.send_keys('Lajput Nagar') inputElement.send_keys(Keys.ENTER) driver.find_element_by_class_name("fs-14") driver.close()

访问Cassandra