基于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


猜你喜欢
- jdk * 和cglib * 实现及区别代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不
- 本文实例讲述了Android自定义dialog简单实现方法。分享给大家供大家参考,具体如下:@Override protected void
- 目录前言一、小提二、将传感器改成事件分发机制三、使用四、源码总结前言在之前写了一篇关于3D效果的文章,借助传感器展示,有小伙伴问可不可以改成
- 本文实例讲述了Android测量每秒帧数Frames Per Second (FPS)的方法。分享给大家供大家参考。具体如下:MainThr
- 实例如下://记录上一次滑动的positionOffsetPixels值 private int lastValue = -1;
- 矢量室内地图开发因为公司项目的需要,需要开发一套室内地图,并实现路线的规划功能。因为之前没做过这方面的开发,相关的资料也比较少,所以只能一个
- 要求环境信息:WIN2008SERVER 开发工具:VS2015 开发语言:C#要求: 1.点击同步数据后接口获取数
- 开发过程中经常遇到需要用某些http://maven.apache.org/中没有的jar包,这个时候可以用maven命令自己添加通常这些j
- 用Java代码模拟卖100张火车票问题:四个售票窗口同时售票且不能卖出同一张火车票。代码如下。package lesson;public c
- 1、static关键字1.1 使用static关键字定义属性在讲解static定义属性操作之前,首先编写如下一道程序。现在定义一个表示中国人
- FeignClient脱离eureka自定义URL需求Spring Cloud环境中的FeignClient有时候需要调用特定主机的接口,但
- 主流有几种方法,一种是用下面的函数publicstaticStringgetProperty(Stringkey)键相关值的描述java.v
- 概念final 具有“不可改变的”的含义,可以修饰 非抽象类、非抽象成员方法和变量。用 final 修饰的类不能被继承,没有子类。用 fin
- 布局中listview要覆盖标题栏 int mTouchSlop = ViewConfiguration.get(this).getScal
- 很多人都知道:浮点数值不适用于无法接受舍入误差的金融计算中,即:我们常说的丢失精度问题。这是为什么呢?很多人还知道这样一句话:这种舍入误差的
- 一、概念HttpClientAndroid 6中移除(API数量多扩展困难)。HttpURLConnection目前官方集成的。OKHttp
- 一、遇到一个问题1、读取CSV文件package com.guor.demo.charset;import java.io.Buffered
- 前言sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息、利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚
- 一、获取apikey,appsecret与商户号注册公众号、商户号二、获取用户的OpenId1.设置【授权回调页面域名】官方解释:用户在网页
- 本文实例讲述了C#画图之饼图折线图的实现方法,是C#程序设计中非常实用的技巧。分享给大家供大家参考。具体方法分析如下:显示图像的控件定义如下