在使用arthas定位问题的时候,如果我们想使用ognl命令查看一个静态变量的值,我们可能会使用这样的ognl命令:
ognl -x 3 '@com.fdw.study.MasterDataRelation@TYPE_DEPOSITARY'
但是这样使用可能会遇到如下报错,Failed to execute ognl, exception message: ognl.OgnlException: Could not get static...
这是为什么呢?
原来使用这个命令是有前提的,前提是使用的是默认的类加载器,当你使用了自定义的类加载器后,自定义类加载器会导致找不到类
所以正确的方式应该是先使用sc -d命令找到该类的类加载器,然后再指定类加载器的前提下去使用ognl命令,如下:
sc -d com.fdw.study.MasterDataRelation
但当我们执行了这个命令也常常找不到这个类,会报错