It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false) (如果当前请求未处于异步模式(即isAsyncStarted()返回false),则调用此方法是非法的)


当切面有参数为HttpServletRequest之类的参数时,使用

Object[] args = joinPoint.getArgs();

会占用HttpServletRequest中的上下文,当再次调用 

JSON.toJSONString(args);

为再次尝试获取request中的上下文,如果未开启Servlet异步处理,则会抛出此异常,建议切面获取参数时过滤掉

List<Object> logArgs = stream.filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse))).collect(Collectors.toList());

 

关于切面代理,多线程,序列化,流处理问题需要更多的深入学习,一起进步。





免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM