用Arthas解决线上问题之获取请求(HttpServletRequest)

用Arthas解决线上问题之获取请求(HttpServletRequest)

写在前面:写此篇文章意在用Arthasognl,所以不是最优的解决办法,故希望各位大神不要喷我。

前几天遇到这么一个问题:正式环境上一个接口请求,返回结果不是预期。

简化方法如下:

	@RequestMapping("/test")
    @ResponseBody
    public String test() {
    	//获取cookie里的某个值,方法省略
        String cookie = xxxx;
        //调用service 处理cookie 返回一个结果
        String result = xxxService.test(cookie);
        return result ;
    }

在没遇到Arthas的时候,我很可能直接加上log,重新发版来查看cookie的具体指
如果我们用Arthaswatch 查看test 这个方法的入参和返回值的话解话也获得不了cookie的值,之前用Arthas只是简单的用watchtrace等简单的功能。借此次机会正好学习一下比较屌的ognl

具体的命令:

watch -x 3 -n 1  org.springframework.web.servlet.DispatcherServlet doDispatch '@org.springframework.web.context.request.RequestContextHolder@currentRequestAttributes().getRequest().xxx()'

获取到HttpServletRequest之后,那你想获取相关请求的内容就太容易了,上面代码中的xxx各位就自由发挥吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值