基于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变成了这样:
这就导致与对方的接收参数不一致,自然就直接报错了。最后直接把我的ProjectInfo实体类的createTime属性设为String类型即可,也可以引入jar包后使用一些注解在发送时将这个属性序列化成指定的格式如”yyyy-MM-dd“
总之就是对于LocalDate这个类,默认转化为json时将它看成了一个普通的JavaObject(我预期转化成yyyy-MM-dd),然后发送到网络上。而在对方接收时却不能根据那种格式json正确的转换成LocalDate类型的对象,于是就报错。
来源:https://blog.csdn.net/wangzibai/article/details/101722497
猜你喜欢
- 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HT
- 本文实例为大家分享了Android实现图片设置圆角形式的具体代码,供大家参考,具体内容如下1.自定义的图片圆角形式CircleImageVi
- 在构建RESTful数据服务过程中,我们定义了controller、repositories,并用一些注解修饰它们,但是到现在为止我们还没执
- 一些Java项目中在mybatis与spring整合中有MapperScannerConfigurer的使用,该类通过反向代理自动生成基于接
- 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1)
- 最近碰到这么个恶心的问题问题:有个arr文件被放到Module A中引用,现在Module B又依赖了Module A,则在编译过程中会发生
- mybatis多个区间处理如图:要实现车辆数不同区间查询条件思路a.前端传数组,数组里面放"1-5"String类型值
- SpringBoot 2.1.4 错误处理机制springboot的自动配置中帮我们配置了相关的错误处理组件,例如访问一个不存在的页面,就会
- 先看看效果Like This↓一、公共WiFi 公用电脑什么的在我们日常在线上工作、玩耍时,不论开电脑、登录淘宝、玩网游统统都会用到键盘输入
- 现假设某个公司采用公用电话来传递数据,数据是四位的整数,在传递过程中是加密的。加密规则是每位数字都加上5,然后再用除以10的余数代替该数字,
- 在项目里,我需要做一个Spring Boot结合Thymeleaf前端模版,结合JPA实现分页的演示效果。做的时候发现有些问题,也查了现有网
- 本文是一个 Spring 扩展支持 SPEL 的简单模式,方便第三方通过 Spring 提供额外功能。简化版方式这种方式可以在任何能获取Ap
- Swing组件中的事件处理专门用于响应用户的操作,例如,响应用户的鼠标单击、按下键盘等操作。在Swing事件处理的过程中,主要涉及三类对象:
- 本文基于SpringBoot 2.5.0-M2讲解Spring中Lifecycle和SmartLifecycle的作用和区别,以及如何控制S
- springboot远程debug调试1.首先去编辑器打开项目2.打开Edit Configurations 选择remote选项
- 本文实例为大家分享了java实现微信扫码支付的具体代码,供大家参考,具体内容如下1、maven项目的pom.xml中添加如下jar包:<
- 在Java中,可以通过Runtime类或ProcessBuilder类来实现调用外部程序。Runtime类与ProcessBuilder类使
- 配置文件<!-- 文件上传 --> <bean id="multipartResolver" clas
- SqlMapConfig.xml的约束,也就是Mybatis主配置文件的约束<?xml version="1.0"
- 目录1、两阶段终止模式介绍2、Terminator代码演示3、TerminationRequester4、模拟客户端或者服务端都可能终止服务