【问题标题】:Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver' when compiling Grails project编译 Grails 项目时无法加载 JDBC 驱动程序类“net.sourceforge.jtds.jdbc.Driver”
【发布时间】:2013-02-24 00:51:37
【问题描述】:

这是我的第一篇文章,所以要温柔! :)

我已经建立了一个 grails 项目(在 grails 上也是相当新的)并尝试将它连接到 SQL 2008 数据库,我已将 jtds-1.3.0.jar 添加到 lib 文件夹和我的构建中路径,然后我将 DataSource.groovy 文件更改为如下所示:-

dataSource {
    pooled = true
    driverClassName = "net.sourceforge.jtds.jdbc.Driver"
    dialect = "org.hibernate.dialect.SQLServerDialect"
    }

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}


// environment specific settings
    development {
        dataSource {
            dbCreate = "update"
        url= "jdbc:jtds:sqlserver://TestServer:1433;databaseName=TestTable"
            username = "test"
            password = "test"
        // logSql=true
        }
    }

问题是,当我尝试编译时,我得到一个巨大的错误,内容如下,我错过了什么?我用谷歌搜索但找不到明显的解决方案......:S

| Error 2013-03-08 12:44:33,451 [localhost-startStop-1] ERROR context.GrailsContextLoader  - Error executing bootstraps: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver'
Message: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'lobHandlerDetector' while setting bean property 'lobHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'lobHandlerDetector': Invocation of init method failed; nested exception is org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'net.sourceforge.jtds.jdbc.Driver'

【问题讨论】:

    标签: grails jdbc compilation jtds


    【解决方案1】:

    过去我也遇到过类似的问题。

    我已将 JTDS 的版本更改为 1.2.6,一切正常。

    顺便说一句 - 您不需要手动添加 jar。您只需将以下内容添加到您的 BuildConfig.groovy(在依赖项部分):

    runtime 'net.sourceforge.jtds:jtds:1.2.6'
    

    【讨论】:

    • +1 需要注意的是,jTDS 1.3.0 需要 Java 7,如果您使用的是 Java 6,它将无法加载。
    • +1 现在可以正常编译了,使用运行时注释也是一种享受!谢谢! :)
    • jTDS v1.3.1 一直想要加载一个 message_en_US.properties 文件,该文件不包含在 jar 文件中。只有 message.properties 是。一旦我恢复到 1.2.6,这个问题就消失了。
    • 但我仍然无法在 tomcat 上部署 war 文件。同样的错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2015-06-19
    • 2013-07-28
    • 2016-08-18
    • 2012-04-23
    • 2018-05-09
    相关资源
    最近更新 更多