javaagent引发的ClassDefNotFoundException

想用Instrumentation监控cache的实际消耗内存,结果手贱,图方便把Instrumentation类和cache的spring配置文件打到了一个包里,通过在jboss启动脚本里增加 -javaagent:xxx.jar生效

Instrumentation本身没问题,结果是spring里的一些aop类找不到,报“org/aspectj/lang/ProceedingJoinPoint.class”这个类找不到,肯定是spring动态加载找不到这个文件,但奇怪的是lib里明明有这个类。。。

郁闷了半天,重要想到可能和javaagent配置有关,于是豁然开朗了

由于加载xxx.jar的classloader比jboss的classloader更底层,spring先加载了xxx.jar里的xml配置,而不是jboss里配的WIN-INF/lib里的jar,同时这个xml里用到的class也都会从根classloader加载,当然找不到了

解决方法很简单,把Instrumentation单独打个包,别搅合在一起就行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值