首页 > 解决方案 > Spring Boot 执行器未从指定的端口启动

问题描述

我正在尝试在现有的 Spring Boot 2 应用程序上启用执行器,我认为这很简单,因为我已经为我从头创建的应用程序做了几次。但是,当应用程序启动时,以某种方式,tomcat(作为默认服务器)不会使用属性中配置的执行器端口启动。

这是配置和pom的片段

server:
  port: 8085
management:
  port: 9085


        <spring-boot.version>2.3.5.RELEASE</spring-boot.version>


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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

在应用程序启动日志中,我可以看到服务器端口已绑定到应用程序,但没有看到属性中指定的执行器。

18:32:08.435 [main] INFO  o.a.c.h.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8085"]
18:32:08.524 [main] INFO  o.s.b.w.e.t.TomcatWebServer - Tomcat started on port(s): 8085 (http) with context path ''

我希望在上面的日志之后看到一个端口绑定,如下面的日志。

2021-01-20 17:01:35.636  INFO 20044 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9085 (http)

我检查了该端口没有被任何其他应用程序使用。我还错过了什么吗?

标签: javaspringspring-bootspring-boot-actuatorspring-actuator

解决方案


从您的发布信息中,您应该添加一些设置以启用端点。我给一个样品。请试试。换句话说,spring boot 1.x 中使用了 management.port。

简单来说,您只需启用所有端点并公开所有端点。出于安全原因,您应该将 management.endpoints.enabled-by-default 设置为 false。然后启用要公开的端点。


management:
  server:
    port: 9085
  endpoints:
    enabled-by-default: true
    web:
#      base-path: /mgmt          # you can change /actuator to another name
      exposure:
        include: "*"
#  endpoint:
#    refresh:
#      enabled: true
#    loggers:
#      enabled: true
#    env:
#      enabled: true


推荐阅读