FeignException$InternalServerError: [500] during [POST]:Lombok 某些注解不能用于远程调用

本文讲述了在使用Feign进行远程调用时遇到的一个奇怪错误,经过排查发现错误源于对象中使用了Lombok的@AllArgsConstructor注解。尽管在调用接口和接收方法上都添加了@RequestBody注解,但由于Lombok生成的全参构造函数引发问题。移除@AllArgsConstructor注解后,问题得到解决。博客揭示了Lombok与远程调用之间的潜在冲突。
摘要由CSDN通过智能技术生成

远程调用社交登录方法的时候,报了这么个神奇的错误:

查阅了 N 篇博客,最后总结出一个结论:这是由于远程调用时参数传递有误导致的

首先第一想到的排查方式:

我们知道,Feign 远程调用时,是会将对象转为 JSON 进行远程调用的,所以得在公共调用接口方法的参数加上 @RequestBody 注解,远程微服务的 Controller 方法也得加上这个 @RequestBody 注解;

OK,问题来了,我的项目里,明明都有添加上注解,但还是报错了:

百思不得其解之时,回想起之前读过的一篇博客《什么 XX 总监禁止我们使用 Lombok》,嗯?对哦,我在传入远程调用方法的参数时,传入的对象就是有使用过 Lombok 的注解,会不会是这里出现了问题?

Bingo!

果然是 Lombok 注解出了问题!

我为了方便,使用了 @AllArgsConstructor 自动生成全参构造函数;

也正是因为此,我在调用远程方法传入使用了该 Lombok 注解的对象时就爆了上面的错误!(至于错误的真正原因是什么,我并不清楚,遗憾!)

解决方法就是把 @AllArgsConstructor 注解去掉就行了!

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值