CGLIB Enhancement failed

本文介绍了在使用Spring AOP编程时遇到的CGLIBEnhancementfailed错误及其解决方案。该错误通常由Spring和Hibernate中ASM库版本冲突引起。通过调整依赖库,可以有效避免此类异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨晚用SSH写了一个灰常简单的注册页面,有了强大的MyEclipse,大多时间都在点鼠标。在Tomcat里运行,虽然在浏览器里一切正常,而且数据也写进了数据库。但是后台却抛出了大量异常。其中主要是一个错误 CGLIB Enhancement failed。在网上搜索了一下,找到一篇文章《Spring Hibernate在AOP方面的配置冲突解决之道》。不确定是不是原创,因为转载这篇文章的太多了,最后在Google搜索了一下,这个来源最有可能(署名应该是lingoosoft):
http://lingoosoft.blog.ccidnet.com/blog-htm-do-showone-itemid-102500.html

2006年11月05日 16:17:29
Spring Hibernate在AOP方面的配置冲突解决之道

环境:Spring2.0 Hibernate3.1.x/Hibernate3.2

在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar

Hibernate使用如果lib:
asm.jar
asm-attrs.jar


其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。


解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar

2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar

昨晚试一试了,按照文章里做了,还是不行。和黑哥聊天的时候,还说起Java方面厂商太多,好麻烦。支持Microsoft的黑哥,又说,“没有统一的标准”。我也有点小感叹,毕竟有时候就会出一些莫名其妙的问题,虽然最终有人帮忙解决,但的确浪费了很多时间。不过,Java还是有标准的!

今天早上查了下,才反应过来,项目已经发布,就应该去Tomcat的项目文件夹里的lib下看看,果然,那3个lib还在。删除之,运行成功。 

2025-3-21 上午09时48分45秒 CKD <Warning> <org.hibernate.tuple.entity.Pojohnti:v/Uplizer> CERA-000000> <could not create proxy factory for:com.tapi.application.ppmll.dto.domain @uPolicyInvok colnfoDto org.hibernate.hibernateException: javassist Enhancement failed: com.tapi.application.ppmll.dto.domain.0aPolicylnvok.colnfoDto at org.hibernate.proxy.polo_javassist.JavassistLayoutInitializer.getProxyFactory(javassistLayoutUtilizer.java:169) at org.hibernate.proxy.polo_javassist.JavassistProxyFactory.postInstantiate(javassistProxyFactory.java:68) at org.hibernate.tuple.entity.Pojohnti:v/Uplizer.buildProxyFactory(Pojohnti:v/Uplizer.java:188) at org.hibernate.tuple.entity.AbsetractEntityImpl.java:<in1>(AbstractEntityImplizer.java:151) at org.hibernate.tuple.entity.Pojohnti:v/Uplizer.<in1>(ProjectEntityImplizer.java:78) Caused By: java.lang.RuntimeException: duplicate method: at javassist.util.proxy.ProxyFactory.createClassOfProxyFactory.java:509 at javassist.util.proxy.ProxyFactory.createClassOfProxyFactory.java:480 at javassist.util.proxy.ProxyFactory.createClassOfProxyFactory.java:422 at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394) at org.hibernate.tuple.polo_javassist.JavassistLayoutInitializer.getProxyFactory(javassistLayoutUtilizer.java:162) Tuncated_see log file for complete stacktrace Caused By: javassist_bytecode.DaplicationCompleteCaption: duplicate method: getHandler in com.tapi.application.ppmll.dto.domain.0aPolicylnvok.colnfoDto_33_javassist_2003 at javassist_bytecode.ClassFile.callatingButtonOldClassFile.java:864) at javassist_bytecode.ClassFile.addMethod(ClassFile.java:A40) at javassist.util.proxy.ProxyFactory.addCenter(ProxyFactory.java:898) at javassist.util.proxy.ProxyFactory.make(ProxyFactory.java:717) at javassist.util.proxy.ProxyFactory.createClassOfProxyFactory.java:497) Tuncated_see log file for complete stacktrace
最新发布
03-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值