基于FeignException$InternalServerError的解决方案

作者:CodeSerial 时间:2023-04-25 15:50:45 

原因:

feign传值出错无法接收到传值

由于是POST所以添加@RequestBody进行尝试

解决:

错误原因是未添加@RequestBody

尝试不通过json直接在body中传字符串看看能不能直接通过@RequestBody接收

Feign调用时失败,feign.FeignException:status 500 readingXXX。LocalDate序列化引起的错误

最近在项目中需要用feign做一个服务端调用,调用别的服务的接口将我的一些信息发给它,但是总是

报错:feign.FeignException:status 500 readingXXX。

我的调用代码如下:


@PostMapping(value = "/xx/xxx")
public ResultData<String> saveProjectInfo(ProjectInfo p);

按理说应该是没问题的,对方也返回了code为500的响应,说明请求确实送达了对方接口,但是没有正常处理。

于是怀疑是参数没有传对,然后就打断点调试,把发送请求前的参数信息“p”复制出来,打开对方项目的swagger文档,发送复制来的参数,发现能正常调通。

这就奇怪了,同样的参数在我这里通过feign调用就不行,在swagger上直接调用就可以。于是开始到处找原因,最后在别人的建议下用抓包工具抓从我调用方法这里发出的请求包,看看从我这里发出的包是否任然与swagger上输的参数一样。

果然发现了问题,因为对方的ProjectInfo类的crateTime属性是LocalDate类型的,为了类型一致我这里建实体类时也把createTime属性设为LocalDate类型的。

在swagger上测试直接输字符串就行,对方的接口在接收参数时直接就将其转为LocalDate了:


{
 .......
 "createTime"  : "2020-01-09"
  .........
}

但是我的请求发出后,抓的包显示createTime变成了这样:

基于FeignException$InternalServerError的解决方案

这就导致与对方的接收参数不一致,自然就直接报错了。最后直接把我的ProjectInfo实体类的createTime属性设为String类型即可,也可以引入jar包后使用一些注解在发送时将这个属性序列化成指定的格式如”yyyy-MM-dd“

总之就是对于LocalDate这个类,默认转化为json时将它看成了一个普通的JavaObject(我预期转化成yyyy-MM-dd),然后发送到网络上。而在对方接收时却不能根据那种格式json正确的转换成LocalDate类型的对象,于是就报错。

来源:https://blog.csdn.net/wangzibai/article/details/101722497

标签:Feign,Exception,InternalServer,Error
0
投稿

猜你喜欢

  • Java @RequestMapping注解功能使用详解

    2022-08-15 11:06:10
  • C#使用二分查找法判断指定字符的方法

    2022-08-02 06:46:30
  • Spring boot如何集成kaptcha并生成验证码

    2023-09-13 04:00:24
  • IntelliJ IDEA 2020 安装和常用配置(推荐)

    2021-12-22 15:03:53
  • springboot下ueditor上传功能的实现及遇到的问题

    2023-09-22 05:46:21
  • Java 格式化输出JSON字符串的2种实现操作

    2023-11-13 09:41:10
  • Android 接收微信、QQ其他应用打开第三方分享功能

    2022-06-12 18:11:58
  • Android实现给TableLayou绘制边框的方法

    2021-08-04 02:08:41
  • Android编程实现状态保存的方法分析

    2023-07-17 12:54:45
  • C#中Dispose和Finalize方法使用介绍

    2022-09-10 16:05:21
  • Android之FanLayout制作圆弧滑动效果

    2023-01-14 16:58:29
  • Java使用JDK与Cglib动态代理技术统一管理日志记录

    2021-11-09 00:52:31
  • Android使用开源框架Fresco处理图片

    2022-01-24 09:30:08
  • Java Maven高级之插件开发详解

    2023-05-11 19:10:02
  • Java实现分页查询功能

    2023-03-03 14:30:19
  • Unity实现文本转贴图

    2022-05-10 19:53:04
  • C和指针小结(推荐)

    2022-11-08 09:17:08
  • 通过实例解析java过滤器和拦截器的区别

    2022-12-21 05:02:45
  • SpringBoot Bean被加载时进行控制

    2022-10-01 14:06:53
  • 详解三种C#实现数组反转方式

    2023-10-09 20:29:23
  • asp之家 软件编程 m.aspxhome.com