1.前言
尝试一:定位哪个Controller执行了代码
前言
trace指令能追踪调用链路,而Springmvc应用都是借助于:javax.servlet.Servlet * 执行的
watch指令能够实时监测指定方法的:返回值,抛出异常,入参,同时支持OGNL操作
实践
为了节省时间,这里直接给出实施方案,采用watch指令,命令如下[监听内容是依靠trace的内容决定的,但是SpringMvc应用都是一样的,所以可以复用]:
Shell
运行代码复制代码
1
watch org.springframework.web.servlet.DispatcherServlet getHandler returnObj
发起调用会看到打印信息,就能迅速定位到对应的代码
Larth911swachorg.spngranorkweevepcsereg
PressoorCtrl+Ctoabort.
Affect(classcount:1,methodcout:1ct
t5200081:
LURstTiHootoroom
handerdandervethodcomarthas.hoeh
interceptorsenutt,
interceptorlist@Arraylist[isempty-false;size-2],
interceptorIndex-@Integer-ll,
尝试二:反编译查看代码
arthas@311781$jad
arthasTest
com.arthas.contoiterrthasContolte
方法全路径
方法名称
cLassLoader:
org.springframework.boot
-sun.chpaoader@a3d4eac69
.LaunchersExtclassLoadera589b3632
+-Sun.miscLaun
Location:
fiLe:/opt/software/arthas/Arthas.jar!/BOOT-INF/cLase
@RequestMapping(value-f"/test")
@ResponseBody
arthasTest(Stringkey)
publicstring
keyi
Teturn
若有收获,就点个赞吧