SpringCloud使用记录

1. 使用Feign Client时,启动项目报错,找不到FallbackFactory,eg:

  No fallbackFactory instance of type class com.jichu.chezhan.api.factory.RemoteDeviceCategoryFallbackFactory found for feign client remoteDeviceCategoryService

    分析:

    这个错误信息表明在尝试创建 Feign 客户端时,找不到类型为 com.jichu.chezhan.api.factory.RemoteDeviceCategoryFallbackFactory 的回退工厂实例。Feign 客户端通常用于         简化 HTTP 客户端的开发,在微服务架构中非常常见。当调用远程服务失败时,可以通过配置一个回退机制来处理这些失败情况。
  解决:
  ① 确保已正确配置回退工厂:

  确认你的应用中确实存在 RemoteDeviceCategoryFallbackFactory 类,并且该类实现了正确的接口或抽象类。此外,确认该类已经被 Spring 容器正确识别和管理。
  ② 检查 @FeignClient 注解:

  在定义 Feign 客户端的接口上,确保使用了正确的 @FeignClient 注解,并且指定了 fallbackFactory 属性指向你定义的回退工厂类。

  ③ 检查依赖项: 确保所有必要的依赖项都已添加到项目中,并且版本兼容。特别是与 Spring Cloud、OpenFeign 和 Sentinel 相关的依赖。
  ④ 检查 Spring Boot 应用启动类: 确认你的主类上使用了 @SpringBootApplication 注解,并且没有遗漏任何需要的注解,如 @EnableFeignClients。

  以上方法都尝试过后发现还是报错,可以尝试:

  在启动类上添加ComponentScans注解,启动项目时去扫描com.api路径下的组件,就可以找到了:

  @ComponentScans(value = {@ComponentScan("com.api")})

  问题:

  添加@ComponentScans后可以正常启动后,但是调用接口是发现找不到了,因为上面CompnnentScans里面只设置了调用远程接口模块的扫描包路径,还需要把自己项目里的需要扫描的包路径加上,eg:
  @ComponentScans(value = {@ComponentScan("com.jichu.chezhan.api"), @ComponentScan("com.ks")})

  再次调用接口就能调用通了。

posted @   sensen~||^_^|||&  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2022-09-02 将本地代码项目上传到码云gitee
2021-09-02 Windows cmd命令:进入某一硬盘下的某一文件夹
点击右上角即可分享
微信分享提示