2014-05-25 46 views
6

我創建使用Grails 2.4.0一個新的應用,改變了Hibernate插件來那麼當:冬眠:3.6.10.15,我得到了以下錯誤:錯誤的Grails 2.4.0與Hibernate:3.6.10.15插件

Error | 
2014-05-25 12:37:52,167 [localhost-startStop-1] ERROR context.Grail 
actionManagerPostProcessor': Initialization of bean failed; nested 
e 'transactionManager': Cannot resolve reference to bean 'sessionFa 
.factory.BeanCreationException: Error creating bean with name 'sess 
n: could not instantiate RegionFactory [org.hibernate.cache.ehcache 
Message: Error creating bean with name 'transactionManagerPostProce 
eationException: Error creating bean with name 'transactionManager' 
nested exception is org.springframework.beans.factory.BeanCreationE 
exception is org.hibernate.HibernateException: could not instantia 
    Line | Method 
->> 262 | run  in java.util.concurrent.FutureTask 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Wor 
^ 744 | run  in java.lang.Thread 
Caused by BeanCreationException: Error creating bean with name 'tra 
essionFactory'; nested exception is org.springframework.beans.facto 
d failed; nested exception is org.hibernate.HibernateException: cou 
->> 262 | run  in java.util.concurrent.FutureTask 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Wor 
^ 744 | run  in java.lang.Thread 
Caused by BeanCreationException: Error creating bean with name 'ses 
on: could not instantiate RegionFactory [org.hibernate.cache.ehcach 
->> 262 | run  in java.util.concurrent.FutureTask 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Wor 
^ 744 | run  in java.lang.Thread 
Caused by HibernateException: could not instantiate RegionFactory [ 
->> 262 | run  in java.util.concurrent.FutureTask 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Wor 
^ 744 | run  in java.lang.Thread 
Caused by ClassNotFoundException: org.hibernate.cache.ehcache.EhCac 
->> 366 | run  in java.net.URLClassLoader$1 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 355 | run  in  '' 
| 354 | findClass in java.net.URLClassLoader 
| 425 | loadClass in java.lang.ClassLoader 
| 190 | forName . in java.lang.Class 
| 262 | run  in java.util.concurrent.FutureTask 
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor 
| 615 | run  in java.util.concurrent.ThreadPoolExecutor$Wor 
^ 744 | run . . . in java.lang.Thread 
| Error Forked Grails VM exited with error 

注意:爲了解決在安裝spring-security-core期間運行s2-quickstart後遇到的錯誤,我已將hibernate插件(從hibernate4:4.3.5.3更改爲hibernate:3.6.10.15) RC3

這是新版本中的錯誤還是我錯過了一些東西?

+1

在你的conf/DataSource.groovy哪個休眠版本是活動的? –

+0

感謝fat_mike,我不知道數據源中有一個相應的參數需要改變。 – Ayman

回答

15

你的conf/DataSource.groovy中休眠部分應該是這樣的:

hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = false 
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3 
//cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4 
    singleSession = true // configure OSIV singleSession mode 
} 

如果您在BuildConfig.groovy啓用休眠3,你應該註釋掉休眠4的高速緩存中DataSource.groovy中並啓用的高速緩存休眠3.