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  

导致原因:

       在使用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! ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `ClassNotFoundException: org.objectweb.asm.Type` 是一个Java异常,表示无法找到名为 `org.objectweb.asm.Type` 的类。ASM是一个用于动态生成和修改Java字节码的工具库,`org.objectweb.asm.Type` 是ASM库中的一个类。 当出现 `ClassNotFoundException: org.objectweb.asm.Type` 异常时,可能有以下几种原因: 1. 缺少ASM库:你的代码依赖于ASM库,但是没有将它添加到项目的构建路径中。你可以通过将ASM库添加到项目的依赖中来解决这个问题,例如在Maven项目中,在pom.xml文件中添加ASM的依赖项。 2. 版本不匹配:你使用的ASM库的版本与你的代码不兼容。可能是你的代码使用了一个旧版本的ASM,而该类在新版本中已被删除或重命名。你应该检查你的依赖项,并确保使用与代码兼容的ASM版本。 3. 类名错误:在代码中,你可能错误地引用了 `org.objectweb.asm.Type` 类,或者错误地拼写了类名。请仔细检查你的代码,确认类名的正确性。 要解决 `ClassNotFoundException: org.objectweb.asm.Type` 异常,你可以尝试以下几个步骤: 1. 检查依赖项:确保ASM库已正确添加到项目的构建路径中,并且版本与你的代码兼容。 2. 更新ASM库:如果你使用的ASM库版本较旧,请尝试更新到最新版本并重新构建项目。这可能会修复由于版本不匹配导致的问题。 3. 仔细检查代码:确保在代码中正确引用了 `org.objectweb.asm.Type` 类,并且没有发生拼写错误。 如果上述步骤都没有解决问题,你可以考虑向相关社区或论坛寻求帮助,提供更详细的信息,以便他人能够更好地理解并帮助你解决这个异常。 ### 回答2: ClassNotFoundException: org.objectweb.asm.Type是Java中的一个异常类型,表示在运行时无法找到指定的类。这个异常通常在使用反射或动态加载机制时出现,当试图加载一个不存在的类时,就会抛出该异常。 org.objectweb.asm.Type是一个类库ASM中的一个类,它提供了对Java字节码中类型的描述和操作。ASM是一个用于在Java字节码级别进行操作的工具包,它允许以程序方式访问和修改类文件结构。org.objectweb.asm.Type类提供了一系列方法来获取和操作类、字段和方法的类型信息。 当出现ClassNotFoundException: org.objectweb.asm.Type时,意味着在运行时无法找到这个org.objectweb.asm.Type类。可能存在以下几种情况导致这个异常出现: 1. 缺少相关的依赖库:org.objectweb.asm.Type类是ASM库的一部分,如果在项目中没有正确引入ASM库或者ASM库的版本不兼容,就会导致无法找到这个类。需要确认是否正确引入了ASM库并且版本匹配。 2. 包名或类名错误:如果org.objectweb.asm.Type类的包名或类名错误,也会导致无法找到这个类。需要确认包名和类名是否正确。 3. 类路径问题:如果org.objectweb.asm.Type类所在的路径没有包含在JVM的类路径中,同样也会导致无法找到这个类。需要确认类路径配置是否正确。 解决这个异常的方法包括: 1. 确认ASM库的正确引入和版本兼容性。 2. 检查org.objectweb.asm.Type类的包名和类名是否正确。 3. 检查类路径配置是否正确。 总之,ClassNotFoundException: org.objectweb.asm.Type是在运行时无法找到org.objectweb.asm.Type类时抛出的异常。需要检查相关的依赖库、包名、类名和类路径配置来解决这个问题。 ### 回答3: `ClassNotFoundException: org.objectweb.asm.Type` 错误是由于Java程序在运行时找不到 `org.objectweb.asm.Type` 类而引发的。这通常是由以下几种情况导致的: 1. 缺少相关的库或依赖:当程序使用某个库或依赖项,但该依赖项没有正确地添加到项目的类路径中时,就会出现此错误。解决方法是确认是否有导入正确的库,并将其正确添加到程序的类路径中。 2. 版本不兼容:如果项目中的库或依赖项与其他库之间存在版本冲突,就可能导致无法找到所需的类。解决方法是检查项目中使用的所有库的版本,并确保它们与彼此兼容。 3. 编译错误:有时,在编译源代码时可能会出现错误,如缺少引入语句或语法错误等。这会导致无法生成正确的字节码文件,进而在运行时无法加载所需的类。解决方法是检查源代码中的错误,并进行修正。 4. 类文件丢失或损坏:如果程序依赖的类文件丢失或损坏,就会导致无法找到所需的类。解决方法是确保所需的类文件存在且完好无损,如果需要,可以尝试重新编译或重新安装程序。 5. 类路径配置错误:如果程序的类路径配置有误,就会导致无法找到所需的类。解决方法是检查类路径配置是否正确,并进行必要的更正。 总之,`ClassNotFoundException: org.objectweb.asm.Type` 错误的解决方法是仔细检查程序的库和依赖项、版本兼容性、编译错误、类文件的完整性以及类路径配置是否正确。根据具体情况进行相应的调整和修复,以确保程序能够正确加载所需的类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值