Java Webhere到tomcat迁移:HibernateException:无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory]
在将现有的WebSphere特定项目迁移到tomcat时,我遇到一个错误Java Webhere到tomcat迁移:HibernateException:无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory],java,hibernate,tomcat8,Java,Hibernate,Tomcat8,在将现有的WebSphere特定项目迁移到tomcat时,我遇到一个错误无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory]。我已经将WebSphereUowTransactionManager更改为org.springframework.transaction.jta.JtaTransactionManager,因为它支持tomcat。但仍面临着另一个地区工厂的问题 我正在将我的应用程序从WebSphere迁移
无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory]
。我已经将WebSphereUowTransactionManager更改为org.springframework.transaction.jta.JtaTransactionManager
,因为它支持tomcat。但仍面临着另一个地区工厂的问题
我正在将我的应用程序从WebSphere迁移到tomcat,在运行带有web WAR文件的tomcat服务器时出现以下错误。请帮我解决这个问题。我不确定从WebSphere迁移到tomcat时必须使用哪个hibernate属性。
我当前正在持久性xml文件中使用以下属性
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'XXXX' defined in class path resource [config/framework/applicationContext-XX.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.ehcache.EhCacheRegionFactory]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at .......
Caused by: org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.ehcache.EhCacheRegionFactory]
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:423)
at org.hibernate.cfg.AnnotationBinder.determineCacheConcurrencyStrategy(AnnotationBinder.java:1073)
at org.hibernate.cfg.AnnotationBinder.buildCacheMock(AnnotationBinder.java:1043)
at org.hibernate.cfg.AnnotationBinder.determineCacheSettings(AnnotationBinder.java:997)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:579)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4035)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3989)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1398)
at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1519)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1100)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:689)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:310)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 25 more
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.ehcache.EhCacheRegionFactory
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:409)
... 42 more`enter code here`
根本原因是
java.lang.ClassNotFoundException:org.hibernate.cache.ehcache.EhCacheRegionFactory
因此,您似乎错过了类路径中的hibernate ehcache.jar
如果使用maven作为依赖项管理工具,请将以下依赖项添加到项目中:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>3.6.10.Final</version>
</dependency>
org.hibernate
休眠ehcache
3.6.10.最终版本
Hi-Jens,感谢您的回复,我已注入依赖项hibernate ehcache,但开始出现新错误。Hi-Jen,抱歉。。我试图更新文章的全部细节,但它不允许我添加完整的日志。。无论如何。。我正在犯错误。。从错误的角度看,我似乎缺少了persistence jar。。但是当我在Webhere上使用同一个项目时,我没有保存这样的jar…**java.lang.ClassNotFoundException:javax.persistence.persistence找不到**@java,所以你错过了其他jar。。实际是javax-persistence.jar
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>3.6.10.Final</version>
</dependency>