首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡桑德拉-单元: java.io.IOException:由对等方重置连接

卡桑德拉-单元: java.io.IOException:由对等方重置连接
EN

Stack Overflow用户
提问于 2018-06-27 09:56:28
回答 2查看 1.5K关注 0票数 1

我正在使用卡桑德拉单元尝试嵌入式卡桑德拉,并遇到了以下异常,

代码语言:javascript
复制
com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /127.0.0.1 (com.datastax.driver.core.ConnectionException: [/127.0.0.1] Unexpected error during transport initialization (com.datastax.driver.core.TransportException: [/127.0.0.1] Unexpected exception triggered (java.io.IOException: Connection reset by peer))))
at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:195)
at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:78)
at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1029)
at com.datastax.driver.core.Cluster.init(Cluster.java:120)
at com.datastax.driver.core.SessionManager.init(SessionManager.java:61)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:416)
at com.datastax.driver.core.SessionManager.executeQuery(SessionManager.java:453)
at com.datastax.driver.core.SessionManager.executeAsync(SessionManager.java:103)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:91)
at com.datastax.driver.core.SessionManager.execute(SessionManager.java:83)
at com.me.cc.bma.cassandra.test.main(test.java:30)    

对于以下代码,

代码语言:javascript
复制
import com.datastax.driver.core.Cluster;
import org.cassandraunit.CQLDataLoader;
import org.cassandraunit.dataset.CQLDataSet;
import org.cassandraunit.dataset.cql.ClassPathCQLDataSet;
import org.cassandraunit.utils.EmbeddedCassandraServerHelper;
import org.apache.cassandra.config.DatabaseDescriptor;
import com.datastax.driver.core.ResultSet;
import static com.datastax.driver.core.Cluster.builder;
import com.datastax.driver.core.Session;


public class Test{

    static Session session;

    public static void main(String args[]) throws Exception {

          EmbeddedCassandraServerHelper.startEmbeddedCassandra(500000L);
          Cluster.Builder clusterBuilder = builder().addContactPoint("127.0.0.1").withClusterName(EmbeddedCassandraServerHelper.getClusterName()).withPort(7010);
          Cluster cluster = clusterBuilder.build();
          session = cluster.newSession();
          try {
               session.execute("CREATE KEYSPACE ci WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}");
               session = cluster.connect("ci");
               session.execute("CREATE TABLE login (l_id int)");
               session.execute("insert into login(l_id) values(1)");
               ResultSet res = session.execute("select * from login");
               System.out.println(res.all());
          }
          catch (Exception ex) {
               ex.printStackTrace();
          }         
     }

}

版本:

  • 卡桑德拉-驱动器-核心: 3.5.0
  • 卡桑德拉-单位: 3.5.0.1

任何修复都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-29 10:00:25

有一段时间,我也遇到了同样的问题,发现由于maven中的冲突,工件版本是不正确的和不兼容的。

我正在使用下面的版本,对我来说很好:

卡桑德拉-全部: 2.1.14卡桑德拉-单位: 2.1.9.2卡桑德拉-驱动-核心: 3.3.2

还有一种很酷的方法,可以使用@EmbeddedCassandra注释启动嵌入式Cassandra,这为您提供了基本功能。

希望这对你也有用。

票数 1
EN

Stack Overflow用户

发布于 2018-06-28 06:23:10

将端口更改为9142,这是默认的本地传输端口。

代码语言:javascript
复制
Cluster.builder().addContactPoint("127.0.0.1").withClusterName(EmbeddedCassandraServerHelper.getClusterName()).withPort(9142);

还可以在创建表查询中指定主键。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51059763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档