Arthas ognl 表达式报 Failed to execute ognl

如下, 使用静态变量保存 ApplicationContext

package com.xxx.restful.controller;
@Controller
public class LoginController implements ApplicationContextAware {

    public static ApplicationContext staticApplicationContext;
     @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

       staticApplicationContext = applicationContext;
    }
}

利用 Arthas 获取 ApplicationContext

[arthas@25591]$ ognl '@com.xxx.restful.controller.LoginController@staticApplicationContext'

报如下错误:
在这里插入图片描述
查询了一下Arthas关于 ognl 的使用 ognl 的使用 ,发现可以指定加载类的类加载器(classload),

[arthas@25591]$ classloader -t
+-BootstrapClassLoader                                                                                                                                                                                                                      
+-sun.misc.Launcher$ExtClassLoader@b81eda8                                                                                                                                                                                                  
  +-com.taobao.arthas.agent.ArthasClassloader@11e05597                                                                                                                                                                                      
  +-sun.misc.Launcher$AppClassLoader@70dea4e                                                                                                                                                                                                
    +-org.springframework.boot.loader.LaunchedURLClassLoader@254989ff                                                                                                                                                                       
      +-org.codehaus.groovy.reflection.SunClassLoader@660acfb 

于是不使用Arthas默认的类加载器,指定一下靠近应用层的类加载器就ok了

ognl -c 254989ff  '@com.xxx.restful.controller.LoginController@staticApplicationContext' -x 2
  • -c 为类加载器的hash值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值