【发布时间】:2015-06-30 04:06:21
【问题描述】:
我正在将我的 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.Release 构建。无论是什么版本的hibernate 或ehcache 都能让我做到这一点并不重要。显然,我的偏好将是 pom 更改而不是重新配置而不是更改代码......但我会在这一点上采取我能得到的。
编辑:
我正在尝试避免将我的休眠更新到 4.xy,因为这个项目非常大并且非常广泛地使用 HibernateDaoSupport 和 HibernateTemplate(成千上万的独立用法需要很长时间才能重构)
【问题讨论】:
-
试试hibernate版本4.0.1.FINAL,你尝试使用的类好像已经添加到
4.0.0 -
你的依赖有点乱。您将 Spring 1.2.9 和 4.0.3 以及 Spring Security 3.2.0 与旧的 acegi 安全性混合使用。我也非常怀疑 Spring Modules 是否仍在使用新版本的 Spring(该项目已经过时并且被遗弃了很长一段时间)。你能发布你的休眠和缓存配置吗?
-
@M.Deinum 没有参数。这是一个遗留项目,有很多技术债务。我认为其中很多甚至都没有使用(尽管弹簧安全是故意的)。我会尽快发布额外的信息。谢谢。
-
@Paul,现在也有同样的问题。你是怎么解决的?
-
@StasKolodyuk 我现在很难记住,但我相信最后我需要使用更新版本的休眠 - 并且通过扩展 Eh-cache - 对我来说这是一个巨大的麻烦(因为非常广泛地使用了较新版本的 hibernate 不支持的 hibernate 模板,以及使更新变得困难的交织的会话管理代码),但希望对您来说这只是一个简单的 POM 更改!
标签: java spring hibernate maven spring-mvc