SpringCloud FeignClient
在spring cloud 使用@FeignClient 远程调用时,远程调用的方法参数 @RequestParam 中要加上参数名称
正确示例:
@FeignClient(value = "antube-money", path = "withdraw")
public interface WithdrawClient {
@PostMapping("/updateWithdrawOrder")
ResponseMsg<Void> updateWithdrawOrder(@RequestParam("withdrawId") String withdrawId, @RequestParam("state") Integer state);
}
错误示例:
@FeignClient(value = "antube-money", path = "withdraw")
public interface WithdrawClient {
@PostMapping("/updateWithdrawOrder")
ResponseMsg<Void> updateWithdrawOrder(@RequestParam String withdrawId, @RequestParam Integer state);
}
不然启动会创建bean 失败,报如下异常
11:07:09.495 [main ,] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '*.*.*.WithdrawClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
这个小错误已经犯了好多次了,第一次发博客记录。