Spring boot 启动时出现重复密钥端点异常-在Spring引导管理客户端中

Spring boot 启动时出现重复密钥端点异常-在Spring引导管理客户端中,spring-boot,spring-boot-admin,Spring Boot,Spring Boot Admin,我正在尝试配置Spring Boot Admin客户端,但启动客户端应用程序时无法向服务器注册。在启动应用程序时,我得到以下异常 java.lang.IllegalStateException:重复的密钥端点(id=threaddump,url=) 我使用的是客户端的依赖版本,和我在SpringBootAdminServer中使用的版本相同 <parent> <groupId>org.springframework.boot</groupId>

我正在尝试配置Spring Boot Admin客户端,但启动客户端应用程序时无法向服务器注册。在启动应用程序时,我得到以下异常

java.lang.IllegalStateException:重复的密钥端点(id=threaddump,url=)

我使用的是客户端的依赖版本,和我在SpringBootAdminServer中使用的版本相同

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
</parent>

<dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.0.1</version>
</dependency>

org.springframework.boot
spring启动程序父级
2.0.1.1发布
共中心
spring启动管理启动客户端
2.0.1

是什么导致了这个问题?

这是“Spring boot admin 1.x”中已知的错误。但在更高版本(2.0.2)中已修复。 端点列表从AdminServerProperties类获得,默认为

{
  "health", "env", "metrics", "httptrace:trace", 
 "httptrace","threaddump:dump","threaddump", "jolokia", "info",
 "logfile", "refresh", "flyway", 
 "liquibase", "heapdump", "loggers","auditevents"

    };
重复密钥的问题似乎是由于同时存在“httptrace:trace”和“httptrace”(threaddump也是如此)引起的

在配置中通过添加行来覆盖这一点似乎可以解决问题

spring.boot.admin.probed-endpoints: [ "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" ]
更多信息请参见此页:

或者,您可以如下更新pom.xml

<dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.0.2 or above</version>
</dependency>

共中心
spring启动管理启动客户端
2.0.2或以上

这是“Spring boot admin 1.x”中已知的错误。但在更高版本(2.0.2)中已修复。 端点列表从AdminServerProperties类获得,默认为

{
  "health", "env", "metrics", "httptrace:trace", 
 "httptrace","threaddump:dump","threaddump", "jolokia", "info",
 "logfile", "refresh", "flyway", 
 "liquibase", "heapdump", "loggers","auditevents"

    };
重复密钥的问题似乎是由于同时存在“httptrace:trace”和“httptrace”(threaddump也是如此)引起的

在配置中通过添加行来覆盖这一点似乎可以解决问题

spring.boot.admin.probed-endpoints: [ "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" ]
更多信息请参见此页:

或者,您可以如下更新pom.xml

<dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.0.2 or above</version>
</dependency>

共中心
spring启动管理启动客户端
2.0.2或以上

在覆盖配置后,我得到以下信息,但无法检索例如(id=94f60734712b,版本=2,注册=registration(name=Application Web,managementUrl=,healthUrl=)}),buildVersion=null…):404您可以尝试使用2.0.2及更高版本吗。如果您不一定要使用2.0.1,那么我在所有版本中都得到了相同的结果现在我允许客户端中的所有端点,但现在我是另一个异常managementUrl=rejected:但是现在我得到了另一个异常org.springframework.security.web.firewall.RequestRejectedException:请求被拒绝,因为URL包含一个潜在的恶意字符串“%25”在覆盖我获取的以下配置后无法检索实例的信息(id=94f60734712b,版本=2,注册=registration(name=Application Web,managementUrl=,healthUrl=)}),buildVersion=null…):404您可以尝试使用2.0.2及更高版本吗。如果您不一定要使用2.0.1,那么我在所有版本中都得到了相同的结果现在我允许客户端中的所有端点,但现在我是另一个异常managementUrl=rejected:但是现在我得到了另一个异常org.springframework.security.web.firewall.RequestRejectedException:请求被拒绝,因为URL包含一个潜在的恶意字符串“%25”