编译Grails项目时无法加载JDBC驱动程序类'net.sourceforge.jtds.jdbc.Driver'
问题描述:
这是我的第一篇文章,所以要温柔! :)编译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'
答
我以前也有类似的问题。
我已经将JTDS的版本更改为1.2.6,并且一切正常。
顺便说一句 - 你不需要手动添加jar。你只需要以下添加到您的BuildConfig.groovy
(相关内容部分):
runtime 'net.sourceforge.jtds:jtds:1.2.6'
+1要注意的是JTDS 1.3.0需要Java 7,它不会,如果你使用的是Java 6加载的东西 – 2013-03-08 13:20:30
+1现在编译好了,使用运行时注释也可以工作!谢谢! :) – MorkPork 2013-03-08 13:31:35
jTDS v1.3.1一直想要加载一个message_en_US.properties文件,它不包含在jar文件中。只有message.properties是。一旦我恢复到1.2.6,这个问题就消失了。 – 2016-06-07 03:46:53