feign踩坑_落地 Spring Could 所踩过的坑(二)Feign Client 调用服务接口报错

本文介绍了在使用Feign Client调用服务接口时遇到的'Could not extract response'错误,分析了问题可能源于服务端未指定Content-Type或反序列化阶段的问题。通过查看日志,发现信息已正确返回,但日期字段缺少序列化规则。解决方案是在日期字段上添加JsonFormat注解并指定日期格式,问题得以解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

为了方便统一管理服务接口调用,服务调用 HTTP 客户端采用Feign Client,实施下来一直很顺利。负责测试的同事反馈其中一个接口调用报错:Could not extract response: no suitable HttpMessageConverter found for response type ,诡异的事只有这一个接口报错。百度、谷歌都用上,大部分文章说要增加依赖

com.fasterxml.jackson.core

jackson-databind

2.9.4

试过不管用,在国外技术网站发现一种说法是服务端 Response 消息没有指定 Content-Type, 也学着在 Configuration 类中手工增加 application/json 的 Content-Type ,还是无法解决问题。

原因分析

静下来看看日志信息,发现客户端实际上已经获取到了接口返回的json信息,并且在日志中能看到标示的信息格式就是 application/json ,那问题只能出在信息反序列化的阶段了。根据以往经验,先分析信息特征,没发现异常,唯一特殊的是里面有两个字段是日期格式,记得之前遇到过 Spring 自带的 Gson 序列化工具,需要指定日期数据的格式化规则,赶紧查看用于反序列化的模型类,发现带日期的字段,并没有注解日期格式规则,赶紧加上,启动项目测试,问题解决!!!

解决方法

在数据类型为日期的字段上,增加 JsonFormat 注解,并指定格式规则。

示例代码

/**

* 区域信息模型

*/

@Data

public class AreaVO extends AreaBaseVO {

/**

* 添加时间

*/

@JsonProperty("create_time")

@JsonFormat(pattern = DateUtilCustom.DATE_TIME_FORMAT)

private Date createTime;

/**

* 最后修改时间

*/

@JsonProperty("update_time")

@JsonFormat(pattern = DateUtilCustom.DATE_TIME_FORMAT)

private Date updateTime;

@Override

public String toString() {

return super.toString();

}

}

其中 DateUtilCustom.DATE_TIME_FORMAT 是预先定义的常量,值为:yyyy-MM-dd HH:mm:ss

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值