我正在尝试使用cassandra-jdbc驱动程序在GlassFish中为Cassandra设置一个连接池。我已经将驱动程序jar (以及它所依赖的所有jar)放在~glassfish-domain/lib/ext文件夹中,但在尝试ping时得到以下错误:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.cassandra.cql.jdbc.CassandraDriver Could not initialize class org.apache.cassandra.cql.jdbc.CassandraDriver看起来GlassFish找到了这个类,但是不能加载它。由于所有依赖项都得到了满足,一个可能的原因是在静态块中存在异常。我检查了CassandraDriver的代码,它实际上有一个静态块:
static
{
// Register the CassandraDriver with DriverManager
try
{
CassandraDriver driverInst = new CassandraDriver();
DriverManager.registerDriver(driverInst);
}
catch (SQLException e)
{
throw new RuntimeException(e.getMessage());
}
}提前感谢!
发布于 2012-11-14 23:08:06
因为它依赖于log4j.jar,所以slf4j似乎没有正确加载。因此,在我将其添加到类路径中之后,一切似乎都运行得很好。下面是我的库中所有jars的列表:
apache-cassandra-1.1.6.jar
apache-cassandra-clientutil-1.1.6.jar
apache-cassandra-thrift-1.1.6.jar
cassandra-jdbc-1.1.2.jar
commons-lang-2.4.jar
guava-r08.jar
libthrift-0.7.0.jar
log4j-1.2.14.jar
slf4j-api-1.5.8.jar
slf4j-log4j12-1.5.8.jar
https://stackoverflow.com/questions/13052528
复制相似问题