feign调用 fallback调用时启动报错,请问如何解决,将fallback注释了就可以进行正常启动

Blade 未结 4 5680
a756684713
a756684713 2019-06-05 11:14

Error creating bean with name 'deptController' defined in file [E:\IdeaWordSpace\SafetyStandards\blade-service\blade-system\target\classes\org\springblade\system\controller\DeptController.class]: Unsatisfied dependency expressed through constructor parameter 4; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springblade.anbiao.guanlijigouherenyuan.feign.IOrganizationsClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No fallback instance of type class org.springblade.anbiao.guanlijigouherenyuan.feign.IOrganizationsClientBack found for feign client blade-anbiao


4条回答
  •  珠海信通-研发
    2020-12-03 10:59

    我来解释一下为什么作者大大说的添加@Component都无效。其实不是无效,而是作者理想化的包目录都是org.springblade,如果我们自定义了自己的业务模块,命名不叫这个,那么配了@Component注解的fallback实例也是扫描不到的。因为SpringBoot默认扫描Application同级目录下的所有包。但是业务模块的包名不一致。

    而且要注意的是:就算在@EnableBladeFeign里面加业务模块的包名,也还是报错:无法找到fallback实例,那是因为这个仅仅是找包名下的feign接口,而callback实例是属于@Component,没有被@FeignClient修饰,所以依旧找不到。


    那么正确的解决方法就是:在启动类加上

    @ComponentScan(basePackages = {"org.springblade","{业务模块包名}"})


提交回复