美文网首页
如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyn

如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyn

作者: Master大屎 | 来源:发表于2024-02-19 15:15 被阅读0次

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

    Object[] args = joinPoint.getArgs();
    JSON.toJSONString(args);
    

    此时会提示<strong>如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyncStarted()返回false</strong>错误
    因为参数中的Request会占用HttpServletRequest中的上下文,当再次调用
    JSON.toJSONString(args);
    为再次尝试获取request中的上下文,如果未开启Servlet异步处理,则会抛出此异常,可以在获取参数时过滤掉
    List logArgs = stream.filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse))).collect(Collectors.toList());

    相关文章

      网友评论

          本文标题:如果当前请求不在异步模式下,则调用此方法是非法的(即isAsyn

          本文链接:https://www.haomeiwen.com/subject/ecsvadtx.html