org.objectweb.asm.ClassVisitor.visit 备忘

报如如下下错误/异常:

Java代码
  1. Invocation of init method failed;   
  2. nested exception is java.lang.NoSuchMethodError:   
  3. org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V  
Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

 

导致原因:

       在使用spring的Aop进行编程时,需要用到asm*.jar,而Hibernate也需要用到asm相关的jar文件,如果在一个工程的构建路径中存在两个asm*.jar,那么这两个jar中的类就会存在冲突,从而导致该问题的产生。

 

解决:经过网上多翻查找得到多个解决办法,后终于总结出 3 种解决之道:

     检查lib下面关于asm的包,分别有如下几个JAR包:
       asm-2.2.3.jar
       asm.jar
       asm-attrs.jar
       asm-commons-2.2.3.jar
       asm-util-2.2.3.jar


第一种方法

-->删除 asm-2.2.3.jar 重启应用服务器 OK! ...

第二种方法

-->从网上下一个最新的asm-all-3.0.jar的jar包,然后把原来的关于Hibernate的所有asm开头的jar包全部删掉,还有一个cglib-2.1.3.jar也删掉.

重新部署工程,OK! ...

第三种方法

-->去掉类路径上的关于Hibernate的3个lib
    asm.jar
    asm-attrs.jar
    cglib-2.1.3.jar
    再加入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

    OK! ...

你可能感兴趣的:(spring,AOP,编程,Hibernate,J#)