当前位置: 首页 > news >正文

苍穹外卖@RequestBody导错包导致接收不到传入参数

目录

一、前言

二、调试找bug

三、总结


一、前言

这是我在Day9完成管理端接单业务代码时发现的错误,这也算是我一次独立找bug的体验。起因是我在完成接单业务代码之后,进行前后端联调测试,在前端页面点击接单按钮,前端会跳出操作成功的弹框,但是前端页面的订单状态没有改变还是待接单(数据库里面的status也没有改变)

本博客主要是这个常见但是很容易疏忽的问题,以及记录一下我是如何debug找到问题所在的。之前学习都是跟着老师debug调试,出现问题就看弹幕,这次自己debug的体验还是很独特

二、调试找bug

然后我就去控制台找debug语句,发现没有找到update的sql语句。然后我就开始打断点调试,第一个断点打在OrderController的接单方法的log语句上

第二个断点打在了OrderServiceImpl如下图的位置(这里由于我前面跳过微信支付修改代码加了一个全局变量orders,所以这里我就改成了ordersForConfirm,实际上这里也是我排查问题发现有两个orders所以修改一下以防出现影响)

重新启动服务打开前端页面调试,当点击接单按钮时,跳转到第一个断点,我发现传入的参数ordersConfirmDTO的id和status都为null。

然后我还是放行到第二个断点,一步步往下走,发现由于传入的id为null,所以在builder那里构建出来的ordersForConfirm的id也为null,status倒是成功修改了。

最后到update,这里点开orderMapper.xml查看动态sql可知由于id为null所以都不会发出update的sql语句

通过这样整个流程的排查可以锁定问题就是出现在一开始OrderController的方法的传入参数都为null。当时我第一想法就是是不是直接给的前端资源代码是有问题的,但是毕竟前端代码是直接给的而且我问做过的同学或者是查询发现别人接单的测试都是没有问题的。

然后我就开始有点懵了,没办法就用apifox进行接口测试看看。发现同样传入正确的json格式数据但是到第一个断点就是id为null,status为null。此时我问ai或者是问同学想了半天,知道问题就是出现在参数数据。最后回想起很早之前学习苍穹外卖的时候犯过一个错误就是@RequestBody导错包,自己把@RequestBody删除然后选择导包是springwork的就成功解决了(不要导成swagger那个)

三、总结

这次debug我的顺序是:前后端联调 -> 联调出现问题观察控制台输出 -> 打两个断点重新调试 -> 在断点调试中观察数据的变化 -> 使用apifox进行接口测试 -> 确认问题出现的源头在传入参数 -> 发现@RequestBody导错包导致参数无法成功传入

http://www.dtcms.com/a/277620.html

相关文章:

  • Linux锁的概念及线程同步
  • 互斥锁详解(操作系统os)
  • VUE3(二)、路由
  • 时序预测 | Pytorch实现CNN-KAN电力负荷时间序列预测模型
  • day16~17-系统负载高故障与磁盘管理
  • 【开源项目】拆解机器学习全流程:一份GitHub手册的工程实践指南
  • Dubbo-Admin 安装与使用指南:可视化管理 Dubbo 服务
  • 基于 SpringBoot 的 REST API 与 RPC 调用的统一封装
  • Linux操作系统之信号概念启程
  • Scrapy Spider深度解析:从基础到高级应用实战
  • 基于MATLAB的Lasso回归的数据回归预测方法应用
  • 【论文阅读】AdaptThink: Reasoning Models Can Learn When to Think
  • muduo概述
  • DVWA CSRF漏洞分析与利用
  • Leaflet面试题及答案(61-80)
  • 梯度下降算法:像下山一样找到最优解
  • opencv4.12 vs2022 cmake contrib编译
  • (一)SAP GROUP REPORTING(集团报表)集团财务合并解决方案套件
  • ERA5的UV合并成矢量并按时间维度转为nc或tif
  • Excalidraw:一款颠覆传统思维的免费开源绘图工具
  • 28.安卓逆向2-frida hook技术-逆向os文件(一)
  • 零基础完全理解视觉语言模型(VLM):从理论到代码实践
  • TASK2 夏令营:用AI做带货视频评论分析
  • 【算法】递归、搜索与回溯
  • docker运行redis指定配置+jdk17安装在centos7
  • sklearn study notes[1]
  • uView UI 组件大全
  • spring-ai-alibaba 1.0.0.2 学习(十六)——多模态
  • Python 的 MRO
  • JDBC相关知识点