因为很久没有接触JAVA框架的东西了,今天在熟悉之前做的一个SSH框架的时候报了一个错:
java.lang.NoClassDefFoundError:org/hibernate/cfg/HbmBinder$SecondPass
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的,一劳永逸!
不知道我说得是否清楚,如果有其他更好的解决办法的朋友请留言,大家讨论~