栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Eureka监控页面 http://localhost:8001/actuator/info 无法显示

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Eureka监控页面 http://localhost:8001/actuator/info 无法显示

【SpringCloud】Eureka监控页面 http://localhost:8001/actuator/info 无法显示

【There was an unexpected error (type=Not Found, status=404).No message available】

查遍了相关的博客都没有解决问题,最后在自己一步步追溯下找到了问题的根源,成功解决!

学习eureka时,我们可以通过配置info信息设置对应的信息
在服务提供者的YML文件中我配置了以下这段信息:

info:
  app.name: springcloud-service-news
  company.name: www.mark.com
  build.artifactId: @project.artifactId@
  build.version: @project.version@

并且导入了spring-boot-starter-actuator依赖:


    org.springframework.boot
    spring-boot-starter-actuator
    2.5.5

导入的依赖是最新version 2.5.5(可能是因为版本原因才导致以下的问题)

并且也在父工程pom中导入了这段代码:


   springcloud-news
   
       
           src/main/resources
           true
       
   
   
       
           org.apache.maven.plugins
           maven-resources-plugin
       
   

eureka监控页面正常显示:

点击进入info界面,出现以下错误:


在检查了几遍代码之后,我排除了写错代码的可能;并且错误信息为No message available,所以很有可能是该页面被拦截。所以我尝试了一下http://localhost:8001/actuator/health,意外地发现可以正常显示:

在疯狂查阅网站上各种相关博客时,发现了官方对端点的启用和暴露也做了配置,但都说info和health两个端点是默认开启的,但是我的却只能显示health,不能显示info;于是我在YML配置中增加了端点的暴露设置:

management:
  endpoints:
    web:
      exposure:
        include: "*"

更新配置后,health和info页面都能正常显示了

但是根据博客上的说法,info和health两个端点是默认开启的;我实践的结果却是只有health是默认开始的。那么产生冲突的原因是什么呢?我们接着分析:

我们查看springboot官方API文档

发现默认暴露的端点只有health,并没有info; 而在之前查阅的博客中也有官方API的截图, 暴露的端点是health和info两者;所以我们可以合理推测在actuator更新过程中, 对Exposure默认配置进行了更改

为了验证这个想法,我们查看源码:

首先我们搜索与Exposure相关的类

进入OnAvailableEndpointCondition类, 我们可以看到一个叫Exposure的内部类


我们可以看到一个叫DefaultIncludes的类, 中文意思就是默认包含, Ctrl+鼠标左键进入这个类的源码

我们可以看到Web只默认包含health, 因此验证成功

总结:

我导入的acutator依赖版本是2.5.5, 当时的最新版本, 由于版本更新速度非常迅速, 所以网上的博客都是更老的版本, 最后通过不断地Debug,并且对源码进行分析,终于成功解决这个问题.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号