[問題與解決] java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.(I)V

出錯 環境

 MyEclipse10 : Struts2 +Hibernate3.3+Spring 2.5 


出錯現象

root cause

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testa' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
	org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
	java.security.AccessController.doPrivileged(Native Method)

問題原因

Hibernate3.3 Core Libraries 中的 cglib-2.2.jar 和 Spring 2.5 AOP Librariest 中的  cglib-nodep-2.1_3.jar 版本不一致 發生衝突。


解決方法

刪除Hibernate3.3 Core Libraries 中的 cglib-2.2.jar  

操作步驟 爲 windows->Preferences->MyEclipse->Project Capabilities ->Hibernate ->Hibernate 3.3 

     Library modules 選擇 Hibernate3.3 Core Library 

     把cglib-2.2.jar  remove

     Project-->Clean 重新部署


問題思考

Hibernate3.3 是否與 Spring2.5 在某種程度上不兼容? 而Hibernate3.2 中的cglib 的版本爲2.1_3。Hibernate3.2 +Spring 2.5 的話可能會減少一些這樣的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章