SpringCloud踩坑

Posted ypf666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud踩坑相关的知识,希望对你有一定的参考价值。

今天在使用 SpringCloud 时遇到了一个问题,感觉有不少小伙伴会遇到,所以记录下来

版本说明

SpringBoot      2.2.4.RELEASE
SpringCloud     Greenwich.SR1

情景复现

在 pom.xml 中加入如下依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

启动项目后报错 The following method did not exist: org.springframework.boot.actuate.health.CompositeHealthIndicator

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.springframework.cloud.client.discovery.health.DiscoveryCompositeHealthIndicator.<init>(DiscoveryCompositeHealthIndicator.java:42)

The following method did not exist:

    org.springframework.boot.actuate.health.CompositeHealthIndicator.<init>(Lorg/springframework/boot/actuate/health/HealthAggregator;)V

The method's class, org.springframework.boot.actuate.health.CompositeHealthIndicator, is available from the following locations:

    jar:file:/Volumes/Others/MVNrepository/org/springframework/boot/spring-boot-actuator/2.2.4.RELEASE/spring-boot-actuator-2.2.4.RELEASE.jar!/org/springframework/boot/actuate/health/CompositeHealthIndicator.class

It was loaded from the following location:

    file:/Volumes/Others/MVNrepository/org/springframework/boot/spring-boot-actuator/2.2.4.RELEASE/spring-boot-actuator-2.2.4.RELEASE.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of org.springframework.boot.actuate.health.CompositeHealthIndicator

问题分析

问题所在就是——版本冲突
我使用的 SpringBoot 版本是2.2.4,而 SpringCloud 版本是 Greenwich,二者的兼容还是有一定问题的,所以在启动时会报错:在 spring-boot-actuator-2.2.4.RELEASE.jar 下找不到 CompositeHealthIndicator.class

解决方法

解决方法有如下两种,我都已经测试过,这两种方法都可以解决问题

  1. 降级 SpringBoot
    把 SpringBoot 从 2.2.4.RELEASE 降级成 2.1.4.RELEASE
  2. 升级 SpringCloud
    把 SpringCloud 从 Greenwich.SR1 升级成 Hoxton.SR1

按如上所示即可成功解决问题,小伙伴们赶紧去试一下吧~

以上是关于SpringCloud踩坑的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloud2020踩坑记

SpringCloud踩坑之fein

SpringCloud踩坑日记 - zuul开启https

Springcloud踩坑记---使用feignclient远程调用服务404

springcloud Stream整合rabbitmq消息驱动生产者踩坑

springcloud报错-------关于 hystrix 的异常 FallbackDefinitionException:fallback method wasn't found(代码片段