我试图在与应用程序端口(由server.port = 8080在application.properties文件中指定)相同的端口上启用执行器端点,但是由于某些原因,它不起作用。运行应用程序时,我可以从应用程序中获取响应,但不能从执行器端点处获取响应。我可以看到日志提到端点暴露在基本路径“ / actuator”下方,如下面的屏幕快照所示。但是当我尝试点击执行器URL时,它会显示404。
URL,不起作用:
但是,如果我在application.properties中为带有属性(management.server.port = 9000)的执行器端点指定一个单独的端口,那么它将正常工作。
URL,可以正常运行:
唯一的区别在于端口号,但是根据我在spring文档中所读的内容,如果未指定management.server.port,则默认情况下应在应用程序端口上启用执行器端点。 有人可以解释一下我在这里想念什么吗? PS:无论是否指定management.server.port,应用程序运行日志都完全相同,因此,此屏幕快照未指定管理端口。 此外,我尝试为属性(server.port和management.server.port)提供相同的端口号,但是会出现相同的问题。该应用程序可以在该端口上运行,但执行器端点不能。 我正在使用spring-boot版本2.0.6
这些是我的application.properties文件的内容:
camel.springboot.main-run-controller=true
camel.springboot.name=AppName
camel.rest.data-format-property.prettyPrint=false
camel.component.servlet.mapping.context-path=/*
server.port=8080
management.server.port=9000
management.endpoint.health.show-details=always
management.endpoint.beans.enabled=true
logging.level.org.springframework = INFO
logging.level.org.apache.camel.spring.boot = INFO
logging.level.org.apache.camel.impl = DEBUG
这是pom.xml中的依赖项:
<dependencies>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-servlet-starter</artifactId>
</dependency>
</dependencies>
答案 0 :(得分:1)
关于Spring Boot执行器documentation
使用默认的HTTP端口公开管理端点是 基于云的部署的明智选择。但是,如果 应用程序在您自己的数据中心内运行,您可能希望公开 端点使用其他HTTP端口。
它使用默认的HTTP端口(8080)为执行器提供服务。我做了快速检查,并可以通过Spring Boot 2.1.X和2.2.X确认这一点。
尝试从配置中删除management.port
,如果这样做不起作用,则问题可能出在应用程序中的其他(自定义)配置。
答案 1 :(得分:1)
删除 management.server.port=9000
,此属性覆盖 server.port=8080
。
答案 2 :(得分:0)
请在application.properties文件中设置以下内容
management.endpoints.enabled-by-default=true
management.endpoints.web.exposure.include=*