尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【电商项目】新手角色管理代码测试报错排查与解决方案

【电商项目】新手角色管理代码测试报错排查与解决方案 之前小编已经把管理员的CRDU逐个完成并认真看了报错总结了自己踩的坑。角色管理这里也是实现CRDU我自己尝试独立完成实现过程比较顺利就是有几处总是忘写注解这个等后期要总结一篇新博文发这篇主要记录一下编写和测试的时候遇到的报错。一、xml 文件 property 参数爆红当时有点一头雾水让通义检查了一下发现是 resultMap 指定的 type 路径写错了应该是实体类common的路径修改了就好了。二、 修改测试报错 BadSqlGrammarException这是测试的时候报的错事情的经过是这样的。在小编执行新增角色的时候发现状态码200没错但是查询数据库发现只自增了idid对应的行里是null。我当时想不到是因为什么毕竟孩子刚接触落地项目最后找到了原因。等到后面测试修改角色的时候报500了。好消息——有报错可以看可以找原因了。坏消息——四百多行信息六七个 Caused by 本来现在查报错能力就弱。不过没关系的我们做的就是解决问题的工程师于是我去认真翻译报错这里给大家分三层了解一下报错信息然后我们再说是什么问题。最顶层RPC 调用失败org.apache.dubbo.rpc.RpcException:Failed toinvoke themethodupdatein the service com.moriha.common.service.RoleService.翻译调用 RoleService.update 方法时失败了。这一行只告诉我谁出了问题中间层序列化异常——这是干扰信息中间 300 多行全是 FilterChainBuilder、AbstractClusterInvoker、FailoverClusterInvoker 这些 Dubbo 框架的调用链。这是 Dubbo在重试调用和序列化结果不是我们的代码99% 的情况可以跳过。最后层真正的罪魁祸首滚动到最后面找到最内层的 Caused byCaused by: com.alibaba.fastjson2.JSONException: auotype not support :org.springframework.jdbc.BadSqlGrammarException再往下一层Caused by: org.springframework.jdbc.BadSqlGrammarException这才是真正的根因——BadSqlGrammarExceptionSQL 语法错误。提取到核心信息是SQL语法错误。不过我检查了我写的没毛病实在查不出原因了我请求了Claude它让我把管理员启动类的日志报给它小编这时候才学会原来看这个日志也是筛查原因的重要一步之前我对看日志还停留在log.info输出的内容。以下是日志的核心解读看图更方便小编就不文字描述了结论传到提供者端的 Role 对象是个空壳所有字段都是 null。也就是说我的测试数据并没有通过控制器的方法传入于是我去查看我的控制器方法发现我传入的参数前面没有加 RequestBody 注解没有这个注解就接收不到 POST / PUT 请求体里的JSON 数据自动把 JSON 转为 Java 实体对象不能接收 URL 拼接参数。所以这也是为什么新增角色操作数据库只自增id不录入数据的原因至此破案加完注解两个全好了。这个问题我花了一个半小时才找到不过感觉自己看报错的能力确实上升了爽之爽之。收获颇丰的之后大概率会写一篇看报错和日志的文章我还问了Claude怎么想到看那个报错的。就这样草草结尾吧。
返回列表