GlassFish无法初始化org.apache.cassandra.cql.jdbc.CassandraDriver

时间:2012-10-24 15:33:44

标签: jdbc glassfish cassandra

我正在尝试使用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());
        }
    }

提前致谢!

1 个答案:

答案 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