[英]Getting unknown error while running an Grails 2.1.1 application using grials run-app
我在使用grails run-app命令運行Grails 2.1.1應用程序時收到無法創建所需bean的Hibernate錯誤。
錯誤的堆棧跟蹤如下所示:
加載Grails 2.1.1 | 配置類路徑。 | 環境准備發展。 包裝谷物應用程序。 編譯1個源文件| 正在編譯1個源文件。 運行Grails應用程序配置Spring Security UI ... ...完成配置Spring Security UI配置Spring Security Core ... ...完成配置Spring Security Core配置Spring Security ACL ... ...完成配置Spring Security ACL配置Spring安全性Twitter……完成了Spring Security Twitter的配置
| 錯誤2013-08-30 16:24:31,120 [localhost-startStop-1]錯誤context.GrailsContextLoader-執行引導程序時出錯:創建名稱為'transactionManagerPostProcessor'的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時出錯:用鍵[hibernate.dialect]設置bean屬性'properties'時無法解析對bean'dialectDetector'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'dialectDetector'的bean時出錯:調用init方法失敗; 嵌套的異常是org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: 無法確定數據庫名稱[H2]的Hibernate方言!
消息:創建名稱為'transactionManagerPostProcessor'的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時出錯:用鍵[hibernate.dialect]設置bean屬性'properties'時無法解析對bean'dialectDetector'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'dialectDetector'的bean時出錯: 調用init方法失敗; 嵌套的異常是org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:無法確定數據庫名稱[H2]的Hibernate方言! 線| 方法->> 334 | 在java.util.concurrent.FutureTask $ Sync中的innerRun------------------------------------ 166 | 在java.util.concurrent.FutureTask中運行 1145 | java.util.concurrent.ThreadPoolExecutor中的runWorker | 615 | 運行在java.util.concurrent.ThreadPoolExecutor $ Worker ^ 724 | 跑 。 。 。 由BeanCreationException引起的java.lang.Thread中:創建名稱為'transactionManager'的bean時出錯:設置bean屬性'sessionFactory'時無法解析對bean'sessionFactory'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'sessionFactory'的bean時出錯:在設置bean屬性'hibernateProperties'時無法解析對bean'hibernateProperties'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'hibernateProperties'的bean時出錯:用鍵[hibernate.dialect]設置bean屬性'properties'時無法解析對bean'dialectDetector'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'dialectDetector'的bean時出錯:調用init方法失敗; 嵌套的異常是org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:無法確定數據庫名稱[H2]的Hibernate方言!
->> 334 | innerRun in java.util.concurrent.FutureTask$Sync - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | 166 | run in java.util.concurrent.FutureTask | 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor | 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker ^ 724 | run . . . in java.lang.Thread
由BeanCreationException引起:創建名稱為'sessionFactory'的bean時出錯:在設置bean屬性'hibernateProperties'時無法解析對bean'hibernateProperties'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'hibernateProperties'的bean時出錯:用鍵[hibernate.dialect]設置bean屬性'properties'時無法解析對bean'dialectDetector'的引用; 嵌套的異常是org.springframework.beans.factory.BeanCreationException:創建名稱為'dialectDetector'的bean時出錯:調用init方法失敗; 嵌套的異常是org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException:無法確定數據庫名稱[H2]的Hibernate方言!
我的DataBaseConfig .groovy的設置如下:
dataSource {
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
// environment specific settings
environments {
development {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
}
test {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
}
production {
dataSource {
dbCreate = "update"
url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}
}
非常感謝您早日做出回應。
謝謝
遇到過同樣的問題。
該問題似乎與您正在運行的grails版本有關。 對於版本2.2.3以下的grails上的jdk 1.7.025>版本,似乎會出現。
我們將其降級到較低版本的jdk,但沒有出現問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.