spring cloud feign 启动报错 java.lang.IllegalStateException: No fallback instance of type class

今天项目启动,突然发现feign启动报错,失败了,之前都没有发生。
报错信息

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springblade.demo.feign.BlogClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No fallback instance of type class org.springblade.demo.feign.BlogClientFallback found for feign client blade-demo
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:178)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1674)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1248)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:257)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:277)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1478)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1435)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1218)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1175)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
	... 19 common frames omitted
Caused by: java.lang.IllegalStateException: No fallback instance of type class org.springblade.demo.feign.BlogClientFallback found for feign client blade-demo
	at org.springframework.cloud.openfeign.BladeHystrixTargeter.getFromContext(BladeHystrixTargeter.java:83)
	at org.springframework.cloud.openfeign.BladeHystrixTargeter.targetWithFallback(BladeHystrixTargeter.java:75)
	at org.springframework.cloud.openfeign.BladeHystrixTargeter.target(BladeHystrixTargeter.java:51)
	at org.springframework.cloud.openfeign.FeignClientFactoryBean.loadBalance(FeignClientFactoryBean.java:238)
	at org.springframework.cloud.openfeign.FeignClientFactoryBean.getTarget(FeignClientFactoryBean.java:267)
	at org.springframework.cloud.openfeign.FeignClientFactoryBean.getObject(FeignClientFactoryBean.java:247)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
	... 31 common frames omitted

查看代码里面,fallback是存在的。spring cloud feign 启动报错 java.lang.IllegalStateException: No fallback instance of type class_第1张图片
查了网上的帖子,都是说没有把fallback加上@component。
spring cloud feign 启动报错 java.lang.IllegalStateException: No fallback instance of type class_第2张图片
代码里面也是带着的。

所以不是这个问题。后面想起来,springboot启动时候扫描的包是在启动类平级和以下的,由于feign客户端和fallback在微服务中一般都是抽出来放在api模块,导致扫描不到fallback类。所以在启动类的地方,要手动添加扫描包的位置。
spring cloud feign 启动报错 java.lang.IllegalStateException: No fallback instance of type class_第3张图片
加上包扫描的位置之后,启动就成功了
spring cloud feign 启动报错 java.lang.IllegalStateException: No fallback instance of type class_第4张图片
现在还有一个问题,就是这个报错是突然发生的,也就是说之前是没有问题的,代码也没有变动,不知有没有大佬给我解释一下,为什么之前不加这个也可以成功。

Java小白修炼手册

你可能感兴趣的:(工作专栏)