nacos feign 调用第三方服务,传递的参数中包含Timestamp,LocalDateTime 等java API 的时间参数

本文介绍了在SpringBoot整合Nacos作为注册中心后,调用第三方服务时遇到的Timestamp参数JSON反序列化失败的问题。问题根源在于Feign使用Jackson进行序列化,其默认时区与预期不符,且对null处理存在问题。为解决此问题,文章提出了将Feign的默认序列化工具改为FastJSON的方法,通过创建配置类并覆盖writeInternal方法,实现了Feign调用时使用自定义的FastJsonHttpMessageConverter进行参数序列化。
摘要由CSDN通过智能技术生成

springboot 整合nacos 注册中心注册服务后,当调用第三方服务时
第三方服务接口:

// JourneyEntity   实体类包含Timestamp 时间戳参数,引出一个参数传递过程中的json序列化的问题
 @PostMapping
    public void journeyTask(@RequestBody JourneyEntity journeyEntity, HttpServletRequest request){
   
// 业务处理
}

调用第三方服务的feign 接口:

//此处传递一个entity过去,该类包含Timestamp 类型参数
 @PostMapping("/journey")
    @Headers("Content-Type: application/json")
    String notifyScheduler(@RequestHeader("X-Access-UserId") Long userId,
        @RequestHeader("X-Access-WorkspaceId") String workspaceId,
        @RequestHeader("X-Access-TenantCode") String tenantCode, @RequestBody JourneyEntity journeyEntity);

问题:
当第三方服务接收参数,抛出 (异常不全,大致是这意思)“Timestamp 参数 json反序列化失败”

Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Can not construct instance of java.time.LocalDate:

此处对比:没有TimeStamp类型的参数可以正常传递

思考:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值