CGLIB Enhancement failed

昨晚用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还在。删除之,运行成功。 

猜你喜欢

转载自chenwenshun-gmail-com.iteye.com/blog/1174223