CGLIB動態運行異常

CGLIB動態代理報錯:
“C:\Program Files\Java\jdk1.8.0_102\bin\java.exe” “-javaagent:D:\MySoft\Idea\IntelliJ IDEA 2018.3.5\lib\idea_rt.jar=58894:D:\MySoft\Idea\IntelliJ IDEA 2018.3.5\bin” -Dfile.encoding=UTF-8 -classpath “C:\Program Files\Java\jdk1.8.0_102\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_102\jre\lib\rt.jar;D:\Idea_study_project\JavaEE_study\out\production\JDK_CGLB_proxy;D:\Idea_study_project\JavaEE_study\JDK_CGLB_proxy\src\lib\asm-5.2.jar;D:\Idea_study_project\JavaEE_study\JDK_CGLB_proxy\src\lib\cglib-3.3.0.jar” com.study.JdkProxy.CglibProxyDemo
Exception in thread “main” java.lang.ExceptionInInitializerError
at com.study.JdkProxy.CglibProxyDemo.getInstance(CglibProxyDemo.java:24)
at com.study.JdkProxy.CglibProxyDemo.main(CglibProxyDemo.java:55)
Caused by: java.lang.IllegalArgumentException
at org.objectweb.asm.ClassVisitor.(Unknown Source)
at net.sf.cglib.core.DebuggingClassWriter.(DebuggingClassWriter.java:49)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassVisitor(DefaultGeneratorStrategy.java:30)
at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:332)
at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData3.apply(AbstractClassGenerator.java:96)atnet.sf.cglib.core.AbstractClassGenerator3.apply(AbstractClassGenerator.java:96) at net.sf.cglib.core.AbstractClassGeneratorClassLoaderData$3.apply(AbstractClassGenerator.java:94)
at net.sf.cglib.core.internal.LoadingCache2.call(LoadingCache.java:54)atjava.util.concurrent.FutureTask.run(FutureTask.java:266)atnet.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)atnet.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)atnet.sf.cglib.core.AbstractClassGenerator2.call(LoadingCache.java:54) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61) at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) at net.sf.cglib.core.AbstractClassGeneratorClassLoaderData.get(AbstractClassGenerator.java:119)
at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:294)
at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174)
at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153)
at net.sf.cglib.proxy.Enhancer.(Enhancer.java:73)
… 2 more

Process finished with exit code 1
上述異常出現的根本原因在於我們在項目中的jar包引用錯誤。
解決方法:
使用cglib-3.3.0.jar替換項目中的jar包即可解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章