我的classpath中有hibernate3.jar和hibernate-core-4.2.0.CR1.jar,我使用的是Spring 3.1.3版本。代码成功编译,但运行时我遇到错误
2014-10-28 10:51:25,174 DEBUG [RMI TCP Connection(2)-10.126.30.203] - RemoteInvocation的目标方法失败:方法名称 'getPriceByKeys';参数类型[java.util.List,java.util.Date] java.lang.NoSuchMethodError: org.hibernate.SessionFactory.openSession()Lorg /休眠/会话;
我谷歌但没有找到任何解决方案。请注意:我的项目需要hibernate3.jar,但同时我的项目依赖于使用hibernet4.2.0 jar的其他第三方jar。
任何帮助Pls ??
答案 0 :(得分:0)
您需要从classpath
中删除多个hibernate JAR文件。如果不这样做,您的应用程序可能无法按预期工作;这意味着您需要将应用程序的休眠版本从3迁移到4.1。
虽然Spring 3.1使用Hibernate 3 JAR文件,但您仍然可以迁移到Hibernate 4.查看Spring博客提供了一个小教程。
Migrating to Spring 3.1 and Hibernate 4.1
作为Core-Spring课程的一部分,我们有一个实验室应用程序 用于展示如何将Spring和JPA / Hibernate集成在一起。我们 刚刚将它升级到Spring 3.1 / Hibernate 4.1,并认为我们 应该分享一些提示。
答案 1 :(得分:0)
只是一个更新。问题的原因是,我在项目中有两个spring-context xml文件(我的一个项目和一个与我正在集成的另一个模块相关的文件)。我从两个不同的类加载上下文xmls。因此,由spring-context xml之一加载的 DAO 类之一没有获得 hibernate Session 。
稍后使用import标签,我在第一个应用程序上下文文件中包含了第二个春季应用程序上下文文件,然后从该类中加载了一个Single应用程序上下文文件。它解决了错误。
谢谢,