You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot订单支付微服务调用RestTemplate出现JSON解析错误如何解决

问题原因与解决方案

这个报错是JSON反序列化失败导致的:订单服务调用支付接口后,收到的返回内容不是标准JSON格式,无法映射为你定义的Payment类,触发异常后事务回滚,因此订单数据没有写入数据库。而支付服务已经完成了请求处理逻辑,所以支付数据可以正常入库。

具体排查与修复步骤

  • 第一步:先验证支付接口的返回格式
    单独用Postman调用POST http://localhost:8082/api/payment 接口,传入Payment参数,确认两个点:
    1. 响应头的Content-Type是否为application/json
    2. 响应体是否是标准JSON结构,是否存在直接返回Payment xxx这类纯文本内容的情况
  • 第二步:修复支付服务接口返回逻辑
    确保支付服务的/api/payment接口添加了@ResponseBody注解(或Controller类标注了@RestController),且返回值类型为Payment对象,Spring会自动将返回对象序列化为标准JSON格式。
  • 第三步:临时调试确认返回内容
    可以先将RestTemplate调用的返回类型改为String,打印原始返回值确认异常来源:
    // 临时调试代码,替换原有postForObject调用
    String rawResponse = restTemplate.postForObject("http://localhost:8082/api/payment", payment, String.class);
    System.out.println("支付接口原始返回:" + rawResponse);
    // 确认返回格式正确后,再改回Payment.class接收即可
    
  • 第四步:确认RestTemplate配置
    确保项目中引入了Jackson依赖(Spring Boot默认的web starter已经包含),RestTemplate默认加载了MappingJackson2HttpMessageConverter可正常处理JSON反序列化。

内容的提问来源于stack exchange,提问作者Ahmed Hosny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:06:05