服务之间远程Feign调用,出现参数丢失

最近有同事反映生产上,服务与服务之间远程调用,偶尔会出现 参数丢失的情况。但是,不是所有服务之间都会出现参数丢失,是固定有2个服务之间有这种情况。之前也发现过有这种情况出现,还以为是真的没传参数,这一次大家合力一起研究了下,发现是偶发情况。

打断点,压力测,网上寻求答案。终于找到了问题所在,先贴个大佬的解释 偶现的MissingServletRequestParameterException,谁动了我的参数?,解析得很详细。一查发现,果然,这两个出现参数丢失的服务里,有在异步方法中传递使用 HttpServletRequest 的情况。

总结下:

在Tomcat中,Request以及Response对象是会被 循环使用 的。如果在 异步 方法里(比如使用 @Async 等)使用 HtttpServletRequest 对象,有可能会导致请求参数不被解析,从而报错 org.springframework.web.bind.MissingServletRequestParameterException: Required long parameter 'xxx' is not present

所以,我们切记在异步方法中 不要传递使用 HttpServletRequest。

与其花许多时间和精力去凿许多浅井,不如花同样的时间和精力去凿一口深井。-- 烟沙九洲

相关推荐
腻害兔4 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 商城模块:从商品管理到交易引擎,50 张表撑起一整套电商系统
java·大数据·vue.js·产品经理·ai编程
码智社5 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
萧瑟余晖6 小时前
JDK 26 新特性详解
java·开发语言
马优晨7 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
维天说9 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane199410 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
噢,我明白了11 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品11 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘11 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
Java内核笔记11 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端