在使用CGLIB尝试动态代理时,出现了如下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:184)
at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:72)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:72)
at com.csdn.proxy.cglibproxy.ProxyFactory.getProxyObject(TrainStation.java:20)
at com.csdn.proxy.cglibproxy.Client.main(TrainStation.java:39)
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 5 more
因为导包的时候,没有用Maven构建项目部,问题应该在jar包上,之前使用的cglib的jar为:
cglib-3.3.0.jar
解决方法:
更换jar包为:
cglib-nodep-3.3.0.jar
下载方式:
- 进入阿里云云效Maven

2.Idea普通方式导入jar包。


导包之后运行可能会出现以下问题:

尝试降低JDK版本即可。
本文讲述了在使用CGLIB动态代理时遇到的NoClassDefFoundError问题,通过更换依赖的cglib-nodep-3.3.0.jar包并可能降低JDK版本来解决,适合初学者理解常见问题处理方法。
597

被折叠的 条评论
为什么被折叠?



