无法让Cassandra在Basic Applcation中工作

这是我当前的错误:

com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /127.0.0.1 (com.datastax.driver.core.TransportException: [/127.0.0.1] Unexpected exception triggered (java.lang.NoClassDefFoundError: Could not initialize class com.datastax.driver.core.Codec))) com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:186) com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:81) com.datastax.driver.core.Cluster$Manager.init(Cluster.java:773) com.datastax.driver.core.Cluster$Manager.access$100(Cluster.java:706) com.datastax.driver.core.Cluster.(Cluster.java:79) com.datastax.driver.core.Cluster.(Cluster.java:66) com.datastax.driver.core.Cluster$Builder.build(Cluster.java:687) com.t2.claims.persistence.CassandraClient.getOrCreateCluster(CassandraClient.java:12) com.t2.claims.persistence.CassandraClient.getOrCreateSession(CassandraClient.java:18) com.t2.claims.dao.AlertDaoImpl.findAll(AlertDaoImpl.java:25) com.t2.claims.controllers.AlertIndexController.doAfterCompose(AlertIndexController.java:36) org.zkoss.zk.ui.impl.UiEngineImpl.doAfterCompose(UiEngineImpl.java:529) .... 

我觉得我正在导入我需要的所有可用的人工制品(以及许多我不想试图解决这个问题)。

我只是不明白为什么这不起作用?

这是我的pom.xml的完整性:

  4.0.0 com.t2.claims T2ClaimsPortal war 1.0-SNAPSHOT T2ClaimsPortal  3.2.0.RELEASE 6.0.2.1 2.4 1.2.1 1.3.1 1.1.1    spring-milestone Spring Maven MILESTONE Repository http://maven.springframework.org/milestone   ZK EE https://maven.zkoss.org/repo/zk/ee/      me.prettyprint hector-core 0.8.0-2    com.datastax.cassandra cassandra-driver-core 1.0.4    org.slf4j slf4j-api 1.5.5   org.slf4j slf4j-log4j12 1.5.5 runtime   com.google.guava guava 14.0.1   com.yammer.metrics metrics-core 2.2.0   io.netty netty 3.7.0.Final   org.apache.cassandra cassandra-all 1.2.9   org.apache.thrift libthrift 0.7.0   org.codehaus.jackson jackson-core-asl 1.9.2   org.testng testng 6.8.1    org.springframework spring-core ${spring.version}   org.springframework spring-expression ${spring.version}   org.springframework spring-beans ${spring.version}   org.springframework spring-aop ${spring.version}   org.springframework spring-context ${spring.version}   org.springframework spring-context-support ${spring.version}   org.springframework spring-tx ${spring.version}   org.springframework spring-jdbc ${spring.version}   org.springframework spring-orm ${spring.version}   org.springframework spring-oxm ${spring.version}   org.springframework spring-web ${spring.version}   org.springframework spring-webmvc ${spring.version}   org.springframework spring-webmvc-portlet ${spring.version}   org.springframework.integration spring-integration-core 2.2.6.RELEASE    org.zkoss.zk zkplus ${zk.version}   org.zkoss.zk zkspring-core 3.1   org.zkoss.theme sapphire ${zk.version}   org.zkoss.zk zul ${zk.version}   org.zkoss.common zcommon ${zk.version}   org.zkoss.zk zk ${zk.version}   org.zkoss.common zweb ${zk.version}    commons-logging commons-logging ${commons-logging.version}   commons-fileupload commons-fileupload ${commons-fileupload.version}   commons-lang commons-lang ${commons-lang.version}   commons-io commons-io ${commons-io.version}   commons-collections commons-collections 3.2.1   commons-codec commons-codec 1.7   org.apache.commons commons-io 1.3.2   commons-configuration commons-configuration 1.6 jar compile    javax.servlet servlet-api 2.5   javax.servlet.jsp jsp-api 2.1 provided      org.codehaus.jackson jackson-mapper-asl 1.9.10   com.fasterxml.jackson.core jackson-databind 2.0.2   joda-time joda-time 2.1   org.jgroups jgroups 3.2.0.Final   org.apache.commons commons-math 2.0    org.springframework spring-test ${spring.version} test   junit junit 4.8.2 test   org.apache.openjpa openjpa 2.2.0   org.hectorclient hector-core 1.1-4   org.slf4j slf4j-log4j12     com.datastax.cassandra cassandra-driver-core 1.0.4   org.hectorclient hector-object-mapper 3.1-09   org.slf4j slf4j-log4j12     com.sun.jersey jersey-client 1.8   org.apache.httpcomponents httpclient 4.2   org.apache.httpcomponents fluent-hc 4.2   org.apache.httpcomponents httpcore 4.2   org.jboss.netty netty 3.2.9.Final   org.apache.curator curator-recipes 2.2.0-incubating    T2ClaimsPortal   maven-compiler-plugin  1.6 1.6    maven-surefire-plugin   **/*Tests.java      

有人可以让我理解为什么我会得到这个例外吗? 我有一个在本地运行的cassandra客户端。 (版本1.2.11)。

这不是你的pom文件的问题。 您的客户端(DataStax Java驱动程序)无法访问您的cassandra数据库。 可能是因为以下几个原因:

  • 检查您正在使用的节点的地址。
  • 另外还检查端口,Cassandra本机二进制协议的默认端口是9042。

更多信息: http : //www.datastax.com/documentation/developer/java-driver/1.0/webhelp/index.html#java-driver/quick_start/qsSimpleClientCreate_t.html

我在虚拟机上安装了Cassandra Server,但我无法远程访问它。 我获得了例外:

 com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /192.168.1.76:9042 (com.datastax.driver.core.TransportException: [/192.168.1.76:9042] Cannot connect)) 

首先,我确认我无法通过telnet访问端口9042。

我解决了在Cassandra Server上修改cassandra.yaml配置文件的问题

 rpc_address = 0.0.0.0 broadcast_rpc_address = 1.2.3.4 

那是因为

rpc_address(或rpc_interface)用于客户端连接,listen_address属性用于节点间通信。

看来你的cassandara服务器没有听你的请求。 试试telnet 127.0.0.1 9160

如果你得到这个telnet:无法连接到远程主机:连接拒绝jdbc库使用DataStax驱动程序,它更成熟,没有bug

  org.apache-extras.cassandra-jdbc cassandra-jdbc 1.2.5  

并重新启动你的cassandara

问题太相似了:我的Spring应用程序因NoHostAvailable而失败,我可以通过在配置文件cassandra.yaml中设置rpc_port和native_transport_port来匹配它,以匹配用于连接到cassandra的eaxct IP地址(即Cluster.builder() .addContactPoints(…这里的IP地址…)),但随后是cqlsh,因为主机没有监听而不再启动…直到我意识到侦听器(rpc或本地传输)正在侦听127.0。 0.1,否则是主机的真正的IP 10.0.0.5,这在这个实现中有点不同! 所以我通过调整cqlsh脚本以使用10.0.0.5并获得解析为127.0.0.1而不是10.0.0.5的localhost名称的rif来解决它…这不符合最初的IP网络原则来建立最终应用程序做出这样的改变。