彻底解决org/hibernate/cfg/HbmBinder$SecondPass的问题
2011-07-01 14:03
441 查看
今天在做项目启动tomcat的时候,发现窗口中报了如下错误:
java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass
这个问题困扰了我整整一个下午,都没查究出来~~
最后上网查了下,发现有这个问题的人还真不少,一些没碰到过这个问题的人就说是因为找不到这个类,但是解决方法都没有明说,这是官方hibernate+spring的问题啊,没有类,我们怎么办啊~
然后发现有的说解决方法就是下最新的hibernate-annotations.jar的包~,这确实能够解决问题,但却不是最根本的解决方法,这个问题其实很奇怪,关键就在于Junit中测试没问题,就是发布到项目中的时候,会出现这样的问题~也就是MyEclipse在发布项目文件时的问题~
于是到MyEclipse的安装目录中搜索hibernate-annotations.jar的包,发现在其中有四个hibernate-annotations.jar的包(MyEclipse6.0的版本下,5.x的不知道,可能只有三个),对比了一下他们的目录分别是:
1.MyEclipse/eclipse/plugins/com.genuitec.org.hibernate.eclipse_....../lib/annotations --[352k]
2.MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework_....../data/2.0/lib/hibernate --[257k]
3.MyEclipse/eclipse/plugins/com.genuitec.org.hibernate.eclipse_....../myeclipse-data/3.2/lib/entitymanager --[257k]
4.MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework_....../data/1.2/lib/dependencies/hibernate --[128k]
而出错的就是第四个目录下的hibernate-annotations.jar的包,一共128k大小
观察四个包的文件大小后很明显这个问题的原因出在Spring的版本上,由于spring2.0的版本比较新,所以更新的hinbernate包也比较新,而spirng1.2的版本中,虽然包含了hibernate3.x的版本,但是却由于没有及时更新其中的hibernate包,所以导致出现了这个异常bug,也不知道是因为MyEclipse没有及时更新spring的补丁版本,还是因为spring的工程师忽略了这个问题~,犯下了这种小错误,哈哈,不过说起来也是,人无完人嘛~~
分析了问题发生的原因,最后剩下的就是这个问题的彻底解决办法,很简单
把搜索到的第二或者第三个文件夹中的hibernate-annotations.jar包复制到项目的lib目录中覆盖即可,当然如果以后不想再发生这样的问题的话那就把这个文件直接覆盖搜索到的第四个目录中hibernate-annotations.jar吧,这样以后MyEclipse就再也不会发生同样的问题了~
java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass
这个问题困扰了我整整一个下午,都没查究出来~~
最后上网查了下,发现有这个问题的人还真不少,一些没碰到过这个问题的人就说是因为找不到这个类,但是解决方法都没有明说,这是官方hibernate+spring的问题啊,没有类,我们怎么办啊~
然后发现有的说解决方法就是下最新的hibernate-annotations.jar的包~,这确实能够解决问题,但却不是最根本的解决方法,这个问题其实很奇怪,关键就在于Junit中测试没问题,就是发布到项目中的时候,会出现这样的问题~也就是MyEclipse在发布项目文件时的问题~
于是到MyEclipse的安装目录中搜索hibernate-annotations.jar的包,发现在其中有四个hibernate-annotations.jar的包(MyEclipse6.0的版本下,5.x的不知道,可能只有三个),对比了一下他们的目录分别是:
1.MyEclipse/eclipse/plugins/com.genuitec.org.hibernate.eclipse_....../lib/annotations --[352k]
2.MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework_....../data/2.0/lib/hibernate --[257k]
3.MyEclipse/eclipse/plugins/com.genuitec.org.hibernate.eclipse_....../myeclipse-data/3.2/lib/entitymanager --[257k]
4.MyEclipse/eclipse/plugins/com.genuitec.eclipse.springframework_....../data/1.2/lib/dependencies/hibernate --[128k]
而出错的就是第四个目录下的hibernate-annotations.jar的包,一共128k大小
观察四个包的文件大小后很明显这个问题的原因出在Spring的版本上,由于spring2.0的版本比较新,所以更新的hinbernate包也比较新,而spirng1.2的版本中,虽然包含了hibernate3.x的版本,但是却由于没有及时更新其中的hibernate包,所以导致出现了这个异常bug,也不知道是因为MyEclipse没有及时更新spring的补丁版本,还是因为spring的工程师忽略了这个问题~,犯下了这种小错误,哈哈,不过说起来也是,人无完人嘛~~
分析了问题发生的原因,最后剩下的就是这个问题的彻底解决办法,很简单
把搜索到的第二或者第三个文件夹中的hibernate-annotations.jar包复制到项目的lib目录中覆盖即可,当然如果以后不想再发生这样的问题的话那就把这个文件直接覆盖搜索到的第四个目录中hibernate-annotations.jar吧,这样以后MyEclipse就再也不会发生同样的问题了~
相关文章推荐
- 彻底解决org/hibernate/cfg/HbmBinder$SecondPass的问题
- java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass 解决
- 关于org/hibernate/cfg/HbmBinder$SecondPass的问题
- java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass 异常解决办法
- java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass解决办法 .
- nested exception is java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass
- org/hibernate/cfg/HbmBinder$SecondPass
- hibernate-问题:org/hibernate/cfg/Configuration : Unsupported major.minor version 52.0的解决方法
- org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query 问题的解决
- SSH框架问题——hbm.xml配置出现的org.hibernate.MappingException: Could not determine type for:(貌似叫数据类型转换错误)问题
- Eclipse中写Hibernate的hbm.xml文件时不自动提示的问题解决
- 解决Weblogic与Hibernate的antlr-x.x.jar冲突引起的ClassNotFoundException: org.hibernate.hql.ast.HqlToken问题
- org.hibernate.Session问题解决
- 解决IDEA使用hibernate出现*.hbm.xml not found的问题
- 用maven管理Spring项目出现org.hibernate.MappingException Unknown entity的问题解决办法
- 解决ERROR Configuration:1172 - problem parsing configuration/hibernate.cfg.xml的问题
- hibernate问题org.hibernate.MappingException解决
- 关于ClassNotFoundException: org.hibernate.hql.ast.HqlToken 问题的解决
- nested exception is org.hibernate.MappingException: Unknown entity,问题解决
- 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session懒加载问题