出错 环境
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 的话可能会减少一些这样的问题。