首页 > 其他分享 >解决启动openfeign报错

解决启动openfeign报错

时间:2024-11-30 17:35:45浏览次数:8  
标签:openfeign 启动 Spring netflix Cloud 报错 Ribbon 版本 ribbon

问题:

报错:Description:

Parameter 0 of method retryabeCachingLBClientFactory in org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration required a bean of type 'org.springframework.cloud.netflix.ribbon.SpringClientFactory' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)

The following candidates were found but could not be injected:
- Bean method 'springClientFactory' in 'RibbonAutoConfiguration' not loaded because AllNestedConditions 3 matched 1 did not; NestedCondition on RibbonAutoConfiguration.RibbonClassesConditions.RibbonPresent @ConditionalOnClass did not find required class 'com.netflix.ribbon.Ribbon'; NestedCondition on RibbonAutoConfiguration.RibbonClassesConditions.AsyncRestTemplatePresent @ConditionalOnClass found required class 'org.springframework.web.client.AsyncRestTemplate'; NestedCondition on RibbonAutoConfiguration.RibbonClassesConditions.RestTemplatePresent @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate'; NestedCondition on RibbonAutoConfiguration.RibbonClassesConditions.IClientPresent @ConditionalOnClass found required class 'com.netflix.client.IClient'


Action:

Consider revisiting the entries above or defining a bean of type 'org.springframework.cloud.netflix.ribbon.SpringClientFactory' in your configuration.
。依赖spring-cloud-dependencies,版本:Hoxton.SR9。spring-boot-starter-parent, 2.3.7.RELEASE。spring-cloud-starter-openfeign,2.2.6.RELEASE。spring-cloud-netflix-ribbon, 2.2.6.RELEASE。
如何解决?

 

这个问题出现的原因是 Spring Cloud OpenFeign 依赖 Ribbon,但是你的项目中缺少了 Ribbon 的核心依赖 `com.netflix.ribbon:ribbon`。虽然你引入了 `spring-cloud-netflix-ribbon`,但它只是一个整合包,并不包含 Ribbon 的核心实现。 Spring Boot 2.3.x 开始,Ribbon 依赖需要被显式引入。

解决方法如下:

1. **引入 Ribbon 核心依赖:**

在你的 `pom.xml` 文件中添加以下依赖:

```xml
<dependency>
<groupId>com.netflix.ribbon</groupId>
<artifactId>ribbon</artifactId>
<version>2.7.18</version> <!-- 与你的Spring Cloud版本兼容的Ribbon版本 -->
</dependency>
```

**重要:** Ribbon 2.7.18 是最后一个版本,更高版本不再维护。请确保你的 Spring Cloud 版本与 Ribbon 版本兼容。Hoxton.SR9 应该与 2.7.18 兼容。 如果使用其他 Spring Cloud 版本,请查找兼容的 Ribbon 版本。


2. **检查 Spring Cloud 版本兼容性:**

确保你的 Spring Cloud 版本 (Hoxton.SR9) 和 Spring Boot 版本 (2.3.7.RELEASE) 以及 Spring Cloud OpenFeign 和 Spring Cloud Netflix Ribbon 的版本 (2.2.6.RELEASE) 相互兼容。 你可以在 Spring Cloud 的官方文档中查找兼容性矩阵。 不兼容的版本组合也可能导致类似问题。

3. **重新构建项目:**

添加依赖后,重新构建你的项目,确保依赖被正确下载和引入。

4. **如果仍然报错:**

如果以上步骤仍然无法解决问题,请检查以下几点:

* **依赖冲突:** 检查你的 `pom.xml` 文件中是否存在与 Ribbon 冲突的依赖。使用 `mvn dependency:tree` 命令可以查看项目的依赖树,找出潜在的冲突。
* **排除传递依赖:** 如果存在冲突,可以使用 `<exclusions>` 标签在你的 `pom.xml` 文件中排除冲突的依赖。
* **IDE 缓存:** 尝试清除你的 IDE 缓存并重新导入项目。


通过以上步骤,你应该能够解决 `SpringClientFactory` 找不到的问题,并成功使用 Spring Cloud OpenFeign 和 Ribbon。 记住仔细检查版本兼容性,这是解决 Spring Cloud 相关问题的重要一步。

 

标签:openfeign,启动,Spring,netflix,Cloud,报错,Ribbon,版本,ribbon
From: https://www.cnblogs.com/parkdifferent/p/18578660

相关文章

  • Input报错“Form elements must have labels: Element has no title attribute Elemen
    喵~项目开发难免会遇到些不解的问题,以下总结的是简化版,重在复现问题,解决问题。写表单时,如果只是单独写了input元素,发现在后台管理会飘红。感觉很奇怪,明明没有写错语法,为什么会飘红呢?1、写一段最普通的html页面2、右键,选择“检查”,打开后台管理器,指向input元素此时,可以看到......
  • 关于创建新登录用户使用SQL Server验证登录时报错全过程解决方法(错误: 18456,不包含网
    想必大家在创建新登录用户时会遇到一些问题例如:但是账号密码都已经反复确认过没错了之前我在很多博文看到的解决方法都不能正确解决这个问题,接下来我就来解决下这个问题1.首先创建一个新的登录用户下面配置是这样子的:登录名testlogin密码123下面这张图注意了!如果你......
  • IDEA本地运行Spark程序报错:HADOOP_HOME and hadoop.home.dir are unset. 解决方法
    报错信息java.lang.RuntimeException:java.io.FileNotFoundException:java.io.FileNotFoundException:HADOOP_HOMEandhadoop.home.dirareunset.-seehttps://wiki.apache.org/hadoop/WindowsProblems atorg.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:737)......
  • Docker Compose 优先拉取镜像,若无镜像则自动构建并启动服务
    言简意赅的讲解DockerComposebuild解决的痛点之前我介绍了Docker的一些基础使用和常见问题。后续遇见了拉取不到镜像的网络问题,解决了网络问题之后,有些童鞋反馈很多项目现场无法拉取镜像,甚至有内网限制的情况,需要优先拉取镜像否则本地构建,大家的需求越来越复杂,那本文......
  • Qt运行生成的exe报错“This application failed to start because no Qt platform plu
    Qt运行生成的exe报错“ThisapplicationfailedtostartbecausenoQtplatformplugincouldbeinitialized.Reinstallingtheapplicationmayfixthisproblem.”报错复现将exe复制一份至单独文件夹中,直接运行会发现报错缺少一些dll去Qt根目录D:\QT\Qt\5.15.0\mingw8......
  • VSCode格式化前端代码后Eslint报错
    VSCode格式化前端代码后Eslint报错>比如Eslint要求函数后面括号,括号前要空一格,但是原来的vsCode格式化不会留这个空格;这是矛盾的;解决方式:两步:1.下载三个插件:ESLint:用于在VSCode中集成ESLint。Prettier-Codeformatter:用于代码格式化Vetur:主要 .vue文件 语法......
  • Navicat-navicat15连接PG15数据库报错“字段“datlastsysoid“不存在LINE 1: SELECT D
    报错信息:错误:字段“datlastsysoid“不存在LINE1:SELECTDISTINCTdatlastsysoidFROMpgdatabase根因:Postgres15从pg_database表中删除了datlastsysoid字段引发此错误。解决方案:修改libcc.dll文件1、用在线工具hexed.it打开libcc.dll文件地址:https://hexed.it/如......
  • Spring-线程池执行save语句报错“ No SecurityManager accessible to the calling cod
    报错信息:Cause:org.apache.shiro.UnavailableSecurityManagerException:NoSecurityManageraccessibletothecallingcode,eitherboundtotheorg.apache.shiro.util.ThreadContextorasavmstaticsingleton.Thisisaninvalidapplicationconfiguration.ator......
  • RUOYI参数验证异常处理及自定义注解触发验证抛出异常报错
    目录一.ruoyi与参数验证1.触发报错2.后端现象二.源码分析1.前端代码2.后端代码3.报错分析三.自定义函数注解1.NoNumber注解2.NoNumberMain校验器3.将注解添加进SysRole中4.前端&后端现象一.ruoyi与参数验证1.触发报错对参数验证的使用,从触发参数报错开始,首先对ru......
  • 启动第三方程序并嵌入到指定容器中
    通过调用API方法实现嵌入第三方程序窗口到指定容器CodeusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Window......