今天要整合一个科研系统,整合后发现有这样一个错误:
java.lang.NoClassDefFoundError:org/hibernate/cfg/HbmBinder$SecondPass
百度了一下,看到SunshineRay在JavaEye上的一个帖子,转帖一下:
GOOGLE了下,发现很多人都说直接删除:lib下的hibernate-annotations.jar即可,我照做了,确实成功解决了这个问题,但是我不清楚到底是什么原因导致的。找很多办法之后,大概知道了具体的原因。
首先在我本地搜索annotations.jar发现在MYECLIPSE下出现了2次:
MyEclipse/eclipse/plugins/com.genuitec.org.hibernate.eclipse/lib/annotations - 223M
MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework/data/1.2/lib/dependencies/hibernate - 128M
很明显128M的这个是旧版本,说明在spring1.2这个版本中hibernate包含了一个旧版本的jar包,所以就会导致这个问题,解决办法就很简单了,可以
1、删除掉lib中旧版本的hibernate-annotations.jar。
2、或者把223M的这个版本的JAR包复制到lib下。
3、或者把223M的JAR包直接覆盖掉128M的,一劳永逸!