相关文章推荐
犯傻的芹菜  ·  mac全局升级yarn版本 ...·  11 月前    · 
不羁的苦瓜  ·  numpy.where() ...·  1 年前    · 
愤怒的键盘  ·  Gobject C语言库 IV 接口 ...·  1 年前    · 

异常信息:
cause: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request..

错误原因大致是因为主线程完成后,子线程不能获取request请求信息,包括session等导致此错误。
解决方案:只要在开启新线程前添加如下,让子线程共享主线程servletRequestAttributes即可,亲测可用

 ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
        RequestContextHolder.setRequestAttributes(servletRequestAttributes,true);
解决No thread - bound request found: Are you ref erring to request attributes out si de of an actual web re
纠结了半天的 java .lang.IllegalStateException: getOutputStream() has already。这个问题困扰了半天,在网上查阅了大量资料 出这个 错误 一般就是下面2个.....
No thread - bound request found: " + "Are you ref erring to request attributes out si de of an actual web request , " + "or proces si ng a request out si de of the originally receiving thread ?
定时任务 "No thread - bound request found" 错误 通常是由于在没有请求上下文的情况下执行了需要请求上下文的操作而引起的。在定时任务中,由于没有与请求关联的线程,无法获取当前请求的上下文。 要解决这个问题,你可以尝试以下几种方法: 1. 检查你的定时任务代码,确保没有依赖于请求上下文的操作。如果有,你可以考虑重构代码以避免这种依赖性。 2. 如果你确实需要使用请求上下文,你可以手动创建一个假的请求上下文,并将其与定时任务关联起来。这可以通过使用" Request ContextHolder"类来实现。例如: Servlet Request Attributes request Attributes = new Servlet Request Attributes ( request ); Request ContextHolder.set Request Attributes ( request Attributes ); 请注意,这种方法仅适用于在定时任务中模拟请求上下文,并不会提供真实的请求信息。 3. 如果你使用的是Spring框架,你可以考虑使用`@EnableScheduling`注解来配置定时任务,并确保在定时任务中使用`@Async`注解。这将在每个定时任务方法调用时创建一个新的线程,并为其分配一个新的请求上下文。 希望这些方法能帮助你解决问题!如果有任何进一步的疑问,请随时提问。