java - 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)
我检查了该端口没有被任何其他应用程序使用。我还错过了什么吗?
解决方案
从您的发布信息中,您应该添加一些设置以启用端点。我给一个样品。请试试。换句话说,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
推荐阅读
- ruby-on-rails - Active Model Serializer - 序列化具有多个键和值的模型
- c# - PrintPreviewDialog 仅显示 1 页的项目数少于正在打印的项目数
- css - 展开不同形状和大小的三角形?
- c# - Richtextbox 撤消/重做日期时间
- python - AtributeError:模块 gameutils 没有属性“ch”
- javascript - 除了更改我的代码并重新加载页面之外,有没有办法阻止在页面上执行的重复功能?
- java - 对象的json数组中的移位操作
- selenium - 参数化优先级并在TestNG中启用?
- python - 如何阅读此回复
- node.js - 无法通过邮递员使用承载令牌访问nodejs中的受保护路由