Java Webhere到tomcat迁移:HibernateException:无法实例化RegionFactory[org.hibernate.cache.ehcache.EhCacheRegionFactory]

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迁移

在将现有的WebSphere特定项目迁移到tomcat时,我遇到一个错误
无法实例化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>