![](/img/trans.png)
[英]Can you execute a create table from Datastax driver with session.execute?
[英]Cassandra Connection Session.execute blocks infinitely
我想使用以下代碼連接到本地cassandra數據庫:
public class StartDriver {
public static void main(String[] args) {
Cluster cluster = null;
try {
cluster = Cluster.builder() // (1)
.addContactPoint("127.0.0.1").withPort(9042).build();
SocketOptions socketOptions = cluster.getConfiguration().getSocketOptions();
socketOptions.setConnectTimeoutMillis(1000);
System.out.println("Connection established");
Session session = cluster.connect(); // (2)
System.out.println(session.getState().getConnectedHosts());
System.out.println("Try to execute Query");
ResultSet rs = session.execute("SELECT * FROM htw.student");
System.out.println("Query executed");// (3)
Row row = rs.one();
// System.out.println(row.getString("release_version"));
if (cluster != null) cluster.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
可以建立連接,但是在session.execute()中,程序將永久掛起,而不會出現任何錯誤消息。 我在Windows下使用Cassandra 3.8.0。 可以通過cqlsh和devCenter進行連接,並且效果很好。 有人可以幫忙嗎? 我需要更改cassandra.yaml中的任何配置嗎?
我得到的輸出如下:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Connection established
[/127.0.0.1:9042]
Try to execute Query
運行此代碼,請向我顯示您的輸出。
public class StartDriver {
public static void main(String[] args) {
Cluster cluster = null;
try {
cluster = Cluster.builder() // (1)
.addContactPoint("127.0.0.1").withPort(9042).build();
SocketOptions socketOptions = cluster.getConfiguration().getSocketOptions();
socketOptions.setConnectTimeoutMillis(1000);
System.out.println("Connection established");
Session session = cluster.connect(); // (2)
System.out.println(session.getState().getConnectedHosts());
System.out.println("Try to execute Query");
ResultSet rs = session.execute("SELECT count(*) FROM htw.student");
System.out.println("Query executed");// (3)
Row row = rs.one();
System.out.println(row.getLong("count"));
if (cluster != null) cluster.close();
} catch (Exception e) {
e.printStackTrace();
}
}
問題是在類路徑中有一些類似guava的lib,它們是從cassandra-driver-core使用的 。 我將項目轉換為行家項目,從這一點看,lib似乎相互妨礙。 我從libs文件夾中刪除了lib',只使用了Maven附屬功能,而不是像魔咒那樣揮霍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.