我正在开发一个由多个微服务组成的基于 Spring 的应用程序。我的一个微服务充当 Eureka 服务器,到目前为止一切正常。
在我所有的其他微服务(用@EnableEurekaClient注释)中,我想启用这样的健康检查:
应用程序.yml
eureka:
client:
healthcheck:
enabled: true
Run Code Online (Sandbox Code Playgroud)
我注意到的第一件事是我的 IDE 显示了一个错误:
无法解析配置属性“eureka.client.healthcheck.enabled”
这发生在 Intellij Idea 和 STS 中,所以我认为这不仅仅是 IDE 错误!
应用程序启动失败,并显示一个长UnsatisfiedDependencyException,其根本原因如下:
引起:java.lang.ClassNotFoundException:org.springframework.boot.actuate.health.OrderedHealthAggregator at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_151] at java.lang.ClassLoader。 loadClass(ClassLoader.java:424) ~[na:1.8.0_151] 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_151] 在 java.lang.ClassLoader.loadClass( ClassLoader.java:357) ~[na:1.8.0_151] ... 省略了 87 个常用帧
如果我将compile('org.springframework.boot:spring-boot-starter-actuator') 添加到我的 build.gradle 文件(我假设,这是错误消息想要告诉我的),它会编译并正常启动。但是,IDE 仍然向我显示上述错误。
我的问题如下:
1.如果想要使用 Eureka 健康检查,执行器是否需要在类路径上的预期行为?
2.为什么我的 IDE 会收到错误信息?
感谢帮助!