Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)。 UI是的AngularJs应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控
项目场景:
Spring Boot + Spring Boot Admin监控测试
- Springboot Admin Server版本:2.6.0
- Springboot版本:2.3.9
- Springboot Admin Client 版本:2.6.0
问题描述
客户端添加spring boot admin client依赖后,启动发生报错,详细日志
java.lang.NoSuchMethodError: org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties.getBasePath()Ljava/lang/String;
at de.codecentric.boot.admin.client.registration.ServletApplicationFactory.getManagementContextPath(ServletApplicationFactory.java:86) ~[spring-boot-admin-client-2.6.0.jar:2.6.0]
at de.codecentric.boot.admin.client.registration.ServletApplicationFactory.getManagementBaseUrl(ServletApplicationFactory.java:77) ~[spring-boot-admin-client-2.6.0.jar:2.6.0]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.getHealthUrl(DefaultApplicationFactory.java:154) ~[spring-boot-admin-client-2.6.0.jar:2.6.0]
at de.codecentric.boot.admin.client.registration.DefaultApplicationFactory.createApplication(DefaultApplicationFactory.java:80) ~[spring-boot-admin-client-2.6.0.jar:2.6.0]
at de.codecentric.boot.admin.client.registration.DefaultApplicationRegistrator.register(DefaultApplicationRegistrator.java:56) ~[spring-boot-admin-client-2.6.0.jar:2.6.0]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.2.13.RELEASE.jar:5.2.13.RELEASE
解决方案:
主要是因为spring boot 兼容问题引起, spring boot admin client的版本和spring boot版本不匹配。
不光要考虑admin client和admin server的版本匹配问题,还要考虑和springboot的匹配问题。因此把spring boot admin client 版本降低到2.3.4 以匹配运行的spring boot的版本 , 见下图