Cassandra和R via JDBC:java.lang.NoClassDefFoundError:无法初始化类org.apache.cassandra.cql.jdbc.Utils

时间:2014-12-22 13:04:25

标签: java r jdbc cassandra cassandra-jdbc

我试图通过JDBC访问Cassandra。 不幸的是,即使我正确地使用了jar包cassandra-jdbc-1.2.5.jar 安装在/usr/share/cassandra/lib/,包含文件org/apache/cassandra/cql/jdbc/Utils.class,我收到以下错误:

> library(RJDBC)
Loading required package: DBI
Loading required package: rJava
> cassdrv <- JDBC("org.apache.cassandra.cql.jdbc.CassandraDriver",
+ list.files("/usr/share/cassandra/lib/",pattern="jar$",full.names=T))
>  #Connect to Cassandra node and Keyspace
> casscon <- dbConnect(cassdrv, "jdbc:cassandra://localhost:9160/something")
Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1],  : 
  java.lang.NoClassDefFoundError: Could not initialize class org.apache.cassandra.cql.jdbc.Utils

(使用cassandra 2.1.2,cassandra JDBC 1.2.5,R 3.1.2,CentOS Linux版本7.0.1406)

有关为何会发生这种情况的任何想法吗?

另外,我打开了这个错误报告:https://code.google.com/a/apache-extras.org/p/cassandra-jdbc/issues/detail?id=100

1 个答案:

答案 0 :(得分:0)

如果rJava版本的java与用于编译Cassandra jar的版本不匹配,即使它们由.jclassPath()报告,它们实际上可能不会包含在类路径中。