Spring Data JPA用receiptNumber更新实体Postman报405错误求助
问题原因与解决方案
405 Method Not Allowed错误本质是当前请求的方法和路径无法匹配到后端定义的对应接口,你的代码存在以下几个需要修复的问题:
1. 控制层路径定义错误
你当前的@PutMapping路径缺少路径参数分隔符,规则不合法:
// 错误写法:路径变量和前缀之间没有斜杠,无法匹配/payBill/xxx格式的请求 @PutMapping("/payBill{receiptNumber}")
修复为:
// 正确写法:加斜杠分隔固定路径和路径变量 @PutMapping("/payBill/{receiptNumber}")
2. 服务层修改未持久化到数据库
你当前的业务逻辑只修改了内存中实体对象的属性,没有同步到MongoDB,需要新增保存逻辑:
public PayBill updateVCashTopUpStatus(String receiptNumber){ PayBill payBill = payBillRepository.findByReceiptNumber(receiptNumber); // 建议新增非空判断,避免receiptNumber不存在时触发空指针异常 if (payBill == null) { throw new RuntimeException("对应交易记录不存在"); } payBill.setFinalStatus("Success"); // 新增保存代码,把修改同步到数据库 payBillRepository.save(payBill); return payBill; }
3. Postman请求配置校验
修复代码后需要确认Postman的请求配置符合接口要求:
- 请求方法必须选择PUT,不能使用GET、POST等其他方法
- 请求路径格式需匹配修复后的规则,比如receiptNumber为
REC123456时,请求地址应为http://{你的服务域名/IP:端口}/payBill/REC123456
内容的提问来源于stack exchange,提问作者BALDE
相关产品推荐
相关产品推荐

