guide-rpc-framework-learning icon indicating copy to clipboard operation
guide-rpc-framework-learning copied to clipboard

cglib动态代理demo异常

Open Raxcl opened this issue 3 years ago • 1 comments

直接运行就会有这问题,翻了翻源码有点迷,是不是框架出现了改动啥的? 如下是异常信息: `C:\environment\jdk-18_windows-x64_bin\jdk-18.0.1.1\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:64824,suspend=y,server=n -javaagent:C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2021.3\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "C:\IdeaProjects\guide-rpc-framework-learning\target\classes;C:\Users\Administrator.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;C:\Users\Administrator.m2\repository\org\slf4j\slf4j-simple\1.7.25\slf4j-simple-1.7.25.jar;C:\Users\Administrator.m2\repository\io\netty\netty-all\4.1.42.Final\netty-all-4.1.42.Final.jar;C:\Users\Administrator.m2\repository\com\esotericsoftware\kryo\4.0.2\kryo-4.0.2.jar;C:\Users\Administrator.m2\repository\com\esotericsoftware\reflectasm\1.11.3\reflectasm-1.11.3.jar;C:\Users\Administrator.m2\repository\com\esotericsoftware\minlog\1.3.0\minlog-1.3.0.jar;C:\Users\Administrator.m2\repository\org\objenesis\objenesis\2.5.1\objenesis-2.5.1.jar;C:\Users\Administrator.m2\repository\cglib\cglib\3.3.0\cglib-3.3.0.jar;C:\Users\Administrator.m2\repository\org\ow2\asm\asm\7.1\asm-7.1.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2021.3.21\lib\idea_rt.jar" github.javaguide.proxy.dynamicProxy.cglibDynamicProxy.Main Connected to the target VM, address: '127.0.0.1:64824', transport: 'socket' Exception in thread "main" java.lang.ExceptionInInitializerError at github.javaguide.proxy.dynamicProxy.cglibDynamicProxy.CglibProxyFactory.getProxy(CglibProxyFactory.java:9) at github.javaguide.proxy.dynamicProxy.cglibDynamicProxy.Main.main(Main.java:5) Caused by: net.sf.cglib.core.CodeGenerationException: java.lang.reflect.InaccessibleObjectException-->Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @63c12fb0 at net.sf.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:464) at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:339) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:96) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:94) at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) 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.AbstractClassGenerator$ClassLoaderData.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 Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @63c12fb0 at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:200) at java.base/java.lang.reflect.Method.setAccessible(Method.java:194) at net.sf.cglib.core.ReflectUtils$1.run(ReflectUtils.java:61) at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) at net.sf.cglib.core.ReflectUtils.(ReflectUtils.java:52) at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:243) at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25) at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:332) ... 15 more Disconnected from the target VM, address: '127.0.0.1:64824', transport: 'socket'

Process finished with exit code 1 `

Raxcl avatar Jul 19 '22 08:07 Raxcl

已解决!!! 错误原因:我用的jdk18,改成jdk8就好了。 可能由于jdk之间的不兼容吧!

Raxcl avatar Jul 19 '22 09:07 Raxcl