今天在做spring3.0.x和hibernatet4.2.2集成的测试的时候,报出了java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider的错误,查看了很多信息,终于发现正解:
这是因为spring在3.1之后的版本中把 AnnotationSessionFactory Bean与LocalSessionFactoryBean集成到了一起,统一用org\springframework\orm\hibernate4\LocalSessionFactoryBean。
不再有AnnotationSessionFactory Bean类;
但是org.springframework.orm-3.1.1.RELEASE.jar 依然保留有org\springframework\orm\hibernate3这个包,这是为了向下兼容。(http://wowo12345.iteye.com/blog/1576757)

本文解决了Spring 3.1版本中由于AnnotationSessionFactoryBean与LocalSessionFactoryBean整合导致的NoClassDefFoundError错误。介绍了spring不再提供AnnotationSessionFactoryBean类的原因,并解释了保留hibernate3包是为了向下兼容。
128

被折叠的 条评论
为什么被折叠?



