grails 更新后我遇到以下异常:
2014-10-28 17:12:27,651 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener - Error initializing the application: 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': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
org.springframework.beans.factory.BeanCreationException: 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': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: 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': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
... 4 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
... 4 more
Caused by: java.lang.NoClassDefFoundError: org/hibernate/cache/access/AccessType
at java.lang.Class.privateGetDeclaredMethods(Class.java:2615)
at java.lang.Class.privateGetPublicMethods(Class.java:2733)
at java.lang.Class.getMethods(Class.java:1472)
... 4 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.access.AccessType
at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:175)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:147)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 7 more
Grails 版本 2.4.3 (2.4.4)、Java 1.7
构建配置:
runtime ':hibernate4:4.3.6.1'
runtime ":fixtures:1.3"
配置:
grails.hibernate.pass.readonly = false
grails.hibernate.osiv.readonly = false
在依赖关系报告中,仅包含来自 grails-plugin-databinding 和 hibernate4 插件的 Hibernate 库
有什么想法吗?
最佳答案
如果您使用 Hibernate 4,您的 DataSource.groovy 可能配置错误。在新的 2.4.x 应用程序中,您将在 hibernate 部分
中看到此内容:
// cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
然后您选择要使用的版本,然后在 BuildConfig.groovy 中的 v3 和 v4 之间进行选择。它们只需要保持同步,并且必须与您想要使用的 Hibernate 版本一致。
但是该类是 Hibernate 3 类,不在 Hibernate 4 中,这意味着您要么使用 Hibernate 3,要么有另一个依赖于 Hibernate 3 的插件。不幸的是,在所有流行的 Hibernate 发布之前还需要一段时间相关插件有3.x和4.x版本。
关于hibernate - Grails 更新 2.3.11-> 2.4.3 ClassNotFoundException : org. hibernate.cache.access.AccessType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26613376/