场景

使用spring的时候
报错信息为:
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/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.

分析

简单的说就是没有找到对应的request请求。

此次报错过程是:
controller 里面用Thread执行service,service异常抛出自定义异常,拦截器拦截异常,并打印traceId信息,这个trace工具类,需要request对象。但是找不到所以报错。

这次的错误是因为抛出的异常类型不对。
因为自定义业务异常类型有很多种,如systemException,requestException等,不同的异常,处理方式也不同。 如果抛出requestException,需要从request中获取请求信息,找不到就报错。

没有request对象的常用场景是:
1、controller里面使用普通的Thread线程,这个线程是异步的,并没有request对象。
2、定时任务中也会有同样的问题,因为它不是基于请求的。并没有request对象。

但没有request对象和报错并没有必然联系,我的错误就是抛的自定义异常会经过调用request的拦截器。

解决方案

通用方案:
修改抛出的异常类型为正确的类型。
controller中使用多线程:
如果controller中一定要使用Thread,那么可以用spring那个线程类,能够带request。
定时任务中:
定时任务中没法了,定时没有request,不要抛带request处理的异常即可。

Are you referring to request attributes outside of an actual web request相关推荐

  1. 解决No thread-bound request found: Are you referring to request attributes outside of an actual web.异常

    ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder. ...

  2. postmethod 设置request body utf-8_Cypress系列(62) request() 命令详解

    点击上方蓝字 给一个关注吧 作用 发起一个 HTTP 请求 语法格式 cy.request(url)cy.request(url, body)cy.request(method, url)cy.req ...

  3. WEB——Request与Response

    **ServletConfig对象** 1.获取初始化参数     2.获取servlet配置文件的名称 **ServletContext对象**          1.一个WEB项目只有一个Serv ...

  4. [web] request的Content-Type小结

    本文转载自多篇文章,在这里记录一下. request的Content-Type小结 application/x- www-form-urlencoded是Post请求默认的请求体内容类型,也是form ...

  5. 爬虫----request简介(以及urllib模块和request模块保存图片区别)

    request模块简介 request模块 一.安装 二.request常用方法 三.响应对象response的方法 保存图片案例 request模块 保存图片 request模块 第一种保存图片的方 ...

  6. audio标签报错:DOMException: The play() request was interrupted by a new load request.

    解决audio标签报错 <audio :src="url"></audio> 这是错误信息 DOMException: The play() request ...

  7. java request获取内容_JavaWeb - Http请求消息 - Request获取请求消息(基础)代码演示 - 小黑电脑...

    Http 概念:Hyper Text Transfer Protocol 超文本传输协议 传输协议 : 定义了,客户端和服务器端通信时,发送数据的格式 特点: 基于TCP/IP的高级协议 默认端口号: ...

  8. php request entity too large,Nginx:413 Request Entity Too Large解决

    最近在做给博客添加上传PDF的功能,但是在测试上传文件的过程中遇到了413 Request Entity Too Large错误.不过这个无错误是很好解决的,这个错误的出现是因为上传的文件大小超过了N ...

  9. 微信小程序request请求封装;微信小程序封装request请求;uni-app小程序封装request请求;

    本片封装了微信小程序request请求:为别是post get put请求,重点在request.js文件 1.新增四个文件 2.根目录下的utils下的request.js封装uni.request ...

  10. python request库_【Python爬虫】Request库入门

    什么是爬虫? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引. ...

最新文章

  1. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)
  2. IBM携手天健“漫步”区域医疗信息化市场
  3. angularjs 中的$digest和$apply区别
  4. js opacity0点击_javascript opacity兼容性随笔
  5. 全球及中国智能食品秤行业发展预测及市场规模预测报告2021年版
  6. 商丘高中计算机考试成绩查询系统,河南省中招考生服务平台2019商丘中考成绩查询系统入口...
  7. tomcat 报错:Error occurred during initialization of VM
  8. QT学习之路七(qt的数据库操作)
  9. 用excel做logistic回归分析_利用SPSS进行Logistic回归分析
  10. 树莓派Python 按键实验
  11. Bootstrap可视化布局系统需要引入的静态资源
  12. 重庆理工大学计算机考研分数,重庆理工大学历年考研分数线汇总[2012-2021]
  13. html 页面自动弹出,javaScript实现自动弹出页面
  14. 测试第一步,雀氏纸尿裤
  15. kindle 安卓 app下载的电子书放在什么文件夹?
  16. python实现多EXCEL表格合并xls、xlsx格式
  17. apidoc生成文档时报错
  18. 微信小程序开发2.框架-视图层-WXS
  19. 高中python编程例题-Python进入高中教学
  20. tensorflow63 《深度学习原理与TensorFlow实战》03 Hello TensorFlow

热门文章

  1. vr手柄设置_最佳无线VR设置,最新和即将推出
  2. 小程序-----小白入门
  3. 紫川,网络小说的登峰造极之作
  4. npm ERR! could not determine executable to run
  5. [BZOJ2177][最小/最大(曼哈顿距离)生成树]曼哈顿最小生成树
  6. python多个判断条件_python if not in 多条件判断代码
  7. 一万套Solidworks非标自动化设备三维图纸 3D通用模型 机械设计UG
  8. 基于Android的网络聊天软件(仿QQ)设计与实现
  9. java注册用户_用java编程实现用户注册并进行登录操作
  10. android加法计算器代码,Android实现简单加法计算器