【问题标题】:Error when attempting Grails start up, following JDBC setup在 JDBC 设置之后尝试启动 Grails 时出错
【发布时间】:2013-01-11 15:06:57
【问题描述】:

有可能我应该重复使用我现有的问题。 Connecting a groovy application to SQL server Express

但这似乎有点不同。这个问题是在配置测试应用程序时提出的,现在我正在做真实的事情,这是真正出错的时候。

如您所见,Jar 文件位于我的库和类路径中

我的数据源配置如下(几乎是我的工作示例中的复制粘贴作业)

dataSource {
username = "sa"
password = "password"
url = "jdbc:sqlserver://localhost:1433;databaseName=TimeTracker"
driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
dialect = "org.hibernate.dialect.SQLServerDialect"

我在 grails run-app 上收到以下错误,欢迎任何建议

Error 2013-01-27 16:09:06,772 [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 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
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 
'com.microsoft.sqlserver.jdbc.SQLServerDriver'

【问题讨论】:

  • 要检查您是否可以使用“def classLoader”将 classLoader 注入引导程序并尝试 def driverClass = Class.forName('com.microsoft.sqlserver.jdbc.SQLServerDriver', true, classLoader)。如果没有返回类,则表示它不在类路径中。还要检查指定的类是否在您的 jdbc 驱动程序 jar 版本中。
  • 恐怕错误仍然存​​在,如上所述,因为我已经使用另一个更简单的应用程序对此进行了测试,使用相同的 JDBC .jar,驱动程序肯定存在。真的需要帮助我真的卡住了
  • 使用 'grails war' 命令创建一个 WAR 并检查是否将 lib 添加到文件中。你也尝试过 Class.forName() 如前所述?

标签: grails jdbc groovy datasource sql-server-express


【解决方案1】:

再做一次grails --refresh-dependencies compile,就好了。

如果问题仍然存在,以下是需要仔细检查的附加信息:

  1. 检查路径中是否有空格。如果路径包含空格字符,Grails 将无法正常工作,尤其是在 Windows 上。
  2. 检查您的 Grails 安装,并确保它适用于简单的应用程序。
  3. 检查您的 ivy 缓存(under ~/.grails/c:\<your home>\.grails)是否正常。如果没有,只需将其删除,Grails 就会为您重新创建一个新的 ivy 缓存。
  4. 如果没有。 1-3 忍不住,删除~/.grailsc:\<your home>\.grails 清理所有与Grails 相关的内容,然后重新开始。

【讨论】:

  • 我现在就在做,它工作正常。您可能正在尝试 1. 在 Eclipse 之外使用命令行。 2.重新检查jar文件是否没有损坏。我的 sqljdbc4.jar 是 584,207 字节。
  • 我使用 IDE 执行(使用 GGTS,一个 Eclipse 衍生产品),它在以前的应用程序上运行良好。其次,我检查了 jar 文件,它很好,它与应用程序中运行正常的 jar 的大小完全相同,并且再次下载并解压缩后的大小相同。
  • 在进一步的更新中,我可以确认 datasource.groovy 文件没有问题,这已经在之前的应用程序中进行了测试,并且找到了正确的位置。
  • 我现在有动作了,你说得对,我的 grails 版本已经损坏,现在出现与 sql 和我的代码相关的错误。手指交叉,还有几个小时的工作我可能会得到某个地方
  • 很高兴它正在工作。不要忘记分享您解决问题的步骤:)
【解决方案2】:

这个问题主要在于我的 Grails 版本,特别是随着时间的推移建立起来的 IVY 文件......从第一天开始,我几乎一直在消灭这个项目,你在 grails 中运行的每个项目在您的主 grails 目录中创建它自己的配置文件。经过数月的滥用,我的已严重损坏。

通过重命名文件夹并将我的 grails 版本再次下载到预期的目录,应用程序文件被重新创建,应用程序立即能够找到 SQL JDBC jar。

我应该感谢ChanWit 找到这个解决方案,如果没有他,我想我会精神崩溃。

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 2012-02-21
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    相关资源
    最近更新 更多