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

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

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

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

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

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

Bingo!

果然是 Lombok 注解出了问题!

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

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

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐