我正在尝试使用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());
}
}
提前致谢!
答案 0 :(得分:0)
似乎slf4j没有正确加载,因为它依赖于log4j.jar。所以我在类路径中添加它后,一切似乎都运行正常。这是我的lib中所有罐子的列表:
apache-cassandra-1.1.6.jar
Apache的卡桑德拉 - clientutil-1.1.6.jar
Apache的卡桑德拉 - 节俭1.1.6.jar
卡桑德拉-JDBC-1.1.2.jar
公地郎2.4.jar
番石榴r08.jar
libthrift-0.7.0.jar
log4j的-1.2.14.jar
SLF4J-API-1.5.8.jar
SLF4J-log4j12-1.5.8.jar