A项目远程调用另一项目时是用http方式进行请求的,使用的工具是FeignClient, 以下是FeignClient的踩坑日记
1.在服务的启动入口,即main方法所在的类上需要加一个EnableFeignClients注解,并且如果需要扫描的包不在该类所属的同一包下,需要加上basePackages,否则可能会生成一个代理对象,并且报错
1 | Invalid bound statement (not found): xxx.common.xx.xx.xxXClient.getXxxList |
解决方法如下:
1 | @EnableFeignClients(basePackages = {"test.common"}) |
2.xxClient接口下的方法的响应需要加上@NoArgsConstructor 注解( 或者高版本可以用@Jacksonized), 否则会导致反序列化失败
3.调试技巧,xxClient接口下的方法如果获取不到响应或者不是预期响应,可以先用Object作为方法的返回值。观察返回信息。举例:
1 | // 修改前如下 |