首页 > 其他 > 详细

feign.FeignException: status 400 reading xxx 异常

时间:2020-09-28 21:44:42      阅读:58      评论:0      收藏:0      [点我收藏+]

报错:feign.FeignException: status 400 reading xxx 异常

具体就是feign接口在调用生产者提供的某个方法时异常,无法正常调用。

百思不得其解,因为feign接口和生产者控制器中所写的方法名是一模一样的。

都是:

@RequestMapping("/loginLog_logs")
public List<LoginLog> getMyLoginLogs(String username);

为了排除是生产者方面的问题,进行Junit单元测试之后,排除了这种可能。

折腾一个多小时,最后百度了一番,发现有很多种说法:

1-调用服务的时候,消费者接口中的@RequestParam注解中的value值和服务提供者的controller里面的@RequestParam注解里面的value值一定要保持一致,不然就会报这个错误。

2-Feign 请求服务,在Controller 之上的 xxxMapping 的注解,如果使用 @RequestMapping 的话, 需要声明method 属性, 否则就会引发这个异常

3-Feign的那个方法使用的@RequestParam注解,而接收的参数长度过长,就会导致报400错误,这时需要换为@RequestBody

4-@RequstMapping方法没有指定请求方式

 

都是什么鬼,发现和我的情况都不一样,问题并没有解决。

最后试着尝试在Feign接口和生产者控制器的方法的参数前加上@RequestParm之后,再指定参数的名字,

@RequestMapping("/loginLog_logs")
public List<LoginLog> getMyLoginLogs(@RequestParam(name="name") String username);

问题竟然解决了。。

也就是说,在遇到这种情况的时候,即使Feign接口和生产者控制器的方法一模一样,但是因为参数没有加上@RequestParam且指定参数属性的名字,就会导致Feign无法成功调用生产端的这个方法。。

 

天坑啊。

feign.FeignException: status 400 reading xxx 异常

原文:https://www.cnblogs.com/tangshun100/p/13746126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!