美文网首页
如果当前请求不在异步模式下,则调用此方法是非法的(即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());

相关文章

  • Future模式

    一、简述 该模式的核心思想是异步调用。有点类似于异步的ajax请求。当调用某方法时,该方法耗时较久,而在主函数中也...

  • 2018-03-13 Spring中的异步调用

    异步方法调用 异步方法调用或异步方法模式是(多线程)面向对象程序设计中用于异步调用对象的潜在的长期运行方法的一种设...

  • 异步任务执行的设计模式

    参考:java的设计模式 异步执行方法回调的设计模式:异步方法调用是在等待任务结果时不阻塞调用线程的模式。该模式提...

  • OkHttp 异步请求 源码分析

    由于异步请求和同步请求的前三步是一样的,唯一产生分歧的是最后异步 call 调用请求方法的不同。同步是调用的 ex...

  • 异步与event-loop

    异步是什么? 维基百科:异步方法调用或异步方法模式是(多线程)面向对象程序设计中用于异步调用对象的潜在的长期运行方...

  • 逃逸闭包(@escaping)、 非逃逸闭包(@noescape

    逃逸闭包(@escaping) 当前方法大括号执行结束之后执行。常用于网络请求类中(异步回调) 调用 结果 非逃逸...

  • ajax中的async属性值之同步和异步及同步和异步区别

    jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时...

  • SpringBoot的四种异步处理,学到了

    本篇文章我们以SpringBoot中异步的使用(包括:异步调用和异步方法两个维度)来进行讲解。 异步请求与同步请求...

  • 二十五、OkHttp原理分析(一)

    一、使用方式 OkHttp的使用分为了同步请求和异步请求,分别通过调用execute和enqueue方法,在异步的...

  • caller和callee

    caller返回调用当前函数的引用,如果是函数自身调用,则返回null,callee返回正在被执行函数的引用,即返...

网友评论

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

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