SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig

编程知识 更新时间:2023-05-01 21:25:07

SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig

  • 前言
  • 一. 尝试解决Bug的几种不合适方案
    • 1.1 添加ribbon依赖
    • 1.2 按照提示增加IClientConfig配置
    • 1.3 正确答案

前言

我写了一套网关服务,一模一样的代码在自己电脑和公司电脑都写了一份。结果:

  • 公司电脑:启动报错。
  • 自己电脑:正常运行。

代码一模一样,最终发现,有一处不同:

  • 公司电脑:包名以com为开头。

  • 自己电脑:包名不是以com为开头。

最终启动报错如下:

再说结果之前,先说一下我从网上找过的各种解决方案。因为网上大多都是这几种方案,但是具体问题得具体分析。这里先排个雷(仅针对于包名为com的情况)

一. 尝试解决Bug的几种不合适方案

1.1 添加ribbon依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    <version>2.1.0.RELEASE</version>
</dependency>

添加后,依旧报错。不可行。

1.2 按照提示增加IClientConfig配置

在配置类中增加一个Bean

@Bean
public IClientConfig iClientConfig() {
    return new DefaultClientConfigImpl();
}

添加之后启动正常。但是!但是!但是我发送请求到网关,然后网关再进行转发的时候,就出大问题了:

详细信息:

  1. Error creating bean with name 'ribbonLoadBalancingHttpClient' defined in org.springframework.cloudflix.ribbon.apache.HttpClientRibbonConfiguration:
  2. Unsatisfied dependency expressed through method 'ribbonLoadBalancingHttpClient' parameter 2

也就是说创建ribbonLoadBalancingHttpClient这个Bean的时候出了问题。然后构造函数是有问题的。需要两个参数。具体原因不往下分析了。反正问题代码就出在上面的配置Bean

return new DefaultClientConfigImpl();

虽然增加它,可以避免启动错误,但是无法阻挡这种运行时错误,比如这种构造函数的调用出错。

1.3 正确答案

把上面几种方案都去除。然后将包名改为非com。原因:

  1. Nacos在启动的时候,就会扫描以com为开头的包。此时需要加载路径为comflix.client.config.IClientConfig的相关实例。
  2. 然后我们的包名恰恰以com为开头,可能优先扫描本地项目,就会发现找不到这个类,就会报错。无法启动。

当然,上面的是我的一个猜想,但是如果本地项目使用com为开头的话,肯定是存在一定的冲突的。

附带springcloudgithub相关问题IClientConfig找不到,官网上也有其他的解决方案。看看能不能帮到大家。

更多推荐

SpringCloud - 整合Nacos启动报错Consider defining a bean of type IClientConfig

本文发布于:2023-04-24 01:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/a0330ba877eaf9f06c37681fb1386b12.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   Nacos   SpringCloud   defining   IClientConfig

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 99484文章数
  • 25926阅读数
  • 0评论数