java.lang.NoClassDefFoundError:org/hibernate/cache/spi/RegionFactory - 从spring 3升级到spring 4

Pau*_*aul 5 java spring hibernate spring-mvc maven

我正在将我的spring项目从3.0.5更新到4.0.3.

一切正常,但在启动时,当spring尝试创建bean时,我正在点击此错误消息:

在此输入图像描述

该类当然不存在于ehcache-core,hibernate-ehcache或hibernate-core中.事实上,包装spi似乎并不存在.但是,我已经检查了maven依赖项,看起来像spring 4.0.3和hibernate 3.6.10应该是完全兼容的.在我的pom中,我直接依赖于hibernate-ehcache,它反过来自动引入适当版本的ehcache-core(显然是完成的事情),如下所示:

我的依赖关系看起来像:

在此输入图像描述

在此输入图像描述

我已经广泛搜索了这个错误,但只能找到它的几个引用.鉴于它的默默无闻,我猜测它是我的项目中的一个配置,它引用了这个RegionFactory类,但是,尽管经过了大量的搜索,我找不到任何东西.

有什么想法我怎么能用Spring 4.0.3建立这个项目?

我可以提供您需要的任何其他数据.

关键是要针对Spring 4.0.3进行项目构建.请释放.无论什么版本的hibernate或ehcache使我能够做到这一点并不重要.显然,我的优先选择是改变代码而不是改变代码......但是我会采取我现在能得到的东西.

编辑:我试图避免更新我的休眠过去4.xy因为这个项目是非常大的,并且使用HibernateDaoSupportHibernateTemplate非常广泛(数以千计的独立用法这将需要很长的时间来重构)

小智 4

更新休眠版本。

在 Hibernate 版本 4.0.0.Final 之后,他们从 RegionFactory 中获取包。

3.6.10.最终:org.hibernate.cache.RegionFactory 4.0.0.最终:org.hibernate.cache.spi.RegionFactory。

  • 是的,但没有 HibernateTemplate,我们的代码中有数千个引用。任何替代对遗留代码进行数千次更改的方法都是更好的选择。 (3认同)