Java-debug-tool icon indicating copy to clipboard operation
Java-debug-tool copied to clipboard

CommandCodec 中 agentClassLoader 无法注入?

Open cooljian opened this issue 4 years ago • 5 comments

当时问题: 按照提示流程正常启动,出现了类加载的问题。打印出来这里报错了

Class<?> agentCls = Thread.currentThread().getContextClassLoader().loadClass("io.javadebug.agent.Agent"); Agent 是由系统加载器进行加载么?

企业微信截图_a179657f-6f22-49ad-b170-d477963570c7 企业微信截图_e27b372c-6b03-4fd1-be4a-a9c78ad76cdc

解决方案: CommandCodec 里注入 AgentClassLoader直接改为:agentClassLoader = CommandCodec.class.getClassLoader(); 使用TCCL获取classloader一直为空,导致加载类失败。

cooljian avatar Aug 18 '21 11:08 cooljian

感谢反馈,这里处理有点问题,可以提个pr修复一下问题

pandening avatar Aug 19 '21 10:08 pandening

感谢反馈,这里处理有点问题,可以提个pr修复一下问题

请问下这里 TCCL 获取的 classLoader 为什么是空呢?

cooljian avatar Aug 19 '21 11:08 cooljian

感谢反馈,这里处理有点问题,可以提个pr修复一下问题

请问下这里 TCCL 获取的 classLoader 为什么是空呢?

你的服务怎么启动的?获取到空表示取到的是bootClassLoader

pandening avatar Aug 19 '21 11:08 pandening

感谢反馈,这里处理有点问题,可以提个pr修复一下问题

请问下这里 TCCL 获取的 classLoader 为什么是空呢?

你的服务怎么启动的?获取到空表示取到的是bootClassLoader

我是先启动springboot服务,然后开启server端,没有改端口,只指定了pid,然后开启客户端连接pid。

cooljian avatar Aug 20 '21 04:08 cooljian

感谢反馈,这里处理有点问题,可以提个pr修复一下问题

请问下这里 TCCL 获取的 classLoader 为什么是空呢?

你的服务怎么启动的?获取到空表示取到的是bootClassLoader

我是先启动springboot服务,然后开启server端,没有改端口,只指定了pid,然后开启客户端连接pid。

如果可以,希望能上传一个可以复现的场景,我来看一下具体的情况,没有复现不好进一步做排查

pandening avatar Aug 20 '21 07:08 pandening