2013-03-08 102 views
7

這是我的第一篇文章,所以要溫柔! :)編譯Grails項目時無法加載JDBC驅動程序類'net.sourceforge.jtds.jdbc.Driver'

我已經建立了一個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 
     } 
    } 

麻煩的是,當我嘗試編譯我得到一個巨大的錯誤,內容如下,我缺少什麼?我GOOGLE了一下,但找不到一個明顯的解決方案...: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' 

回答

15

我以前也有類似的問題。

我已經將JTDS的版本更改爲1.2.6,並且一切正常。

順便說一句 - 你不需要手動添加jar。你只需要以下添加到您的BuildConfig.groovy(相關內容部分):

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

+1要注意的是JTDS 1.3.0需要Java 7,它不會,如果你使用的是Java 6加載的東西 – 2013-03-08 13:20:30

+1

+1現在編譯好了,使用運行時註釋也可以工作!謝謝! :) – MorkPork 2013-03-08 13:31:35

+0

jTDS v1.3.1一直想要加載一個message_en_US.properties文件,它不包含在jar文件中。只有message.properties是。一旦我恢復到1.2.6,這個問題就消失了。 – 2016-06-07 03:46:53

相關問題