运行时出现此错误grails run-app:
grails run-app
执行引导程序时出错:创建名称为’messageSource’的bean时出错:初始化bean失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’transactionManager’的bean时出错:设置bean属性’sessionFactory’时无法解析对bean’sessionFactory’的引用;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’sessionFactory’的bean时出错:在设置bean属性’hibernateProperties’时无法解析对bean’hibernateProperties’的引用;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为“ hibernateProperties”的bean时出错:无法解析对bean“ dialectDetector”的引用 同时使用键[hibernate.dialect]设置bean属性“ properties”;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’dialectDetector’的bean时出错:调用init方法失败;嵌套的异常是org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:无法确定数据库名称[H2]的Hibernate方言!
根据 DataSource.groovy :
dataSource { pooled = true driverClassName = "org.h2.Driver" username = "sa" password = "" // Adding this causes a different error: // dialect = org.hibernate.dialect.H2Dialect } hibernate { cache.use_second_level_cache = true cache.use_query_cache = true cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' } environments { development { dataSource { dbCreate = "create-drop" // one of 'create', 'create-drop','update' url = "jdbc:h2:mem:devDB" } } test { // test-related stuff } production { // prod-related stuff } }
当我明确提供上述方言 (org.hibernate.dialect.H2Dialect)时,就会发生此错误:
org.hibernate.dialect.H2Dialect
执行引导程序时出错:创建名称为’messageSource’的bean时出错:初始化bean失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’transactionManager’的bean时出错:在设置bean属性’sessionFactory’时无法解析对bean’sessionFactory’的引用;嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建名称为’sessionFactory’的bean时出错:调用init方法失败;嵌套的异常是java.lang.IncompatibleClassChangeError:找到了类org.hibernate.cfg.Mappings,但是期望使用接口
有人知道如何应对吗?
(错误报告以http://jira.grails.org/browse/GRAILS-7994形式存在)
这是Joda时间插件中的错误。有关详细信息,请参见提到的JIRA问题。