2014-10-24 1 views
-1

JDBC 연결을 사용하여 Java 코드에서 Cassandra에 연결하려고합니다. 여기에 내가

enter image description hereJDBC를 사용하여 Apache Cassandra에 연결하는 방법은 무엇입니까?

을 사용하고 항아리입니다 지금이 내가이 수행 할 유래에있는 코드 :

String serverIP = "localhost"; 
String keyspace = "mykeyspace"; 

Cluster cluster = Cluster.builder() 
      .addContactPoints(serverIP) 
      .build(); 

Session session = cluster.connect(keyspace); 

String cqlStatement = "SELECT * FROM users"; 




for (Row row : session.execute(cqlStatement)) { 
     System.out.println(row.toString()); 
    } 

는 그러나 불행하게도 그것은 다음과 같은 예외 던지고 :

log4j:WARN No appenders could be found for logger (com.datastax.driver.core.Cluster). 
log4j:WARN Please initialize the log4j system properly. 
Exception in thread "main" java.lang.NoSuchMethodError: org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.<init>(IIIIIZ)V 
    at com.datastax.driver.core.Frame$Decoder.<init>(Frame.java:130) 
    at com.datastax.driver.core.Connection$PipelineFactory.getPipeline(Connection.java:795) 
    at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:212) 
    at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:188) 
    at com.datastax.driver.core.Connection.<init>(Connection.java:93) 
    at com.datastax.driver.core.Connection$Factory.open(Connection.java:432) 
    at com.datastax.driver.core.ControlConnection.tryConnect(ControlConnection.java:216) 
    at com.datastax.driver.core.ControlConnection.reconnectInternal(ControlConnection.java:171) 
    at com.datastax.driver.core.ControlConnection.connect(ControlConnection.java:79) 
    at com.datastax.driver.core.Cluster$Manager.init(Cluster.java:1104) 
    at com.datastax.driver.core.Cluster.init(Cluster.java:121) 
    at com.datastax.driver.core.Cluster.connect(Cluster.java:198) 
    at com.datastax.driver.core.Cluster.connect(Cluster.java:226) 
    at com.mabsisa.resources.Demo.main(Demo.java:28) 

인터넷에서이 예외 시나리오를 검색했습니다. 그러나 나는 많은 정보를 찾지 못했습니다. 가능한 한 빨리이 문제를 해결해야하므로이 문제를 해결할 수 있도록 도와주십시오 ...

답변

0

문제는 사용중인 netty 버전에서 비롯된 것 같습니다. 당신은

org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder

생성자에게 어느 카산드라 드라이버 필요가없는 클래스 그물코의 그 버전에서 버전 2.3.0를 사용하고 있습니다.

http://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core/2.0.2 그래서, 그물코의 버전을 업데이트하려고 : 받는다는 저장소에서 카산드라 드라이버 코어는 그물코의 버전 3.9.0.FINAL와 depedency 있습니다.

0

최종 빌드에 두 가지 버전의 netty가 없는지 확인하십시오. 나는 netty 3.2.2와 3.9.0의 두 가지 버전이 있었는데, 최신 datastax 드라이버는 3.9.0이 필요했던 것과 같은 문제가있었습니다.