【发布时间】:2015-04-21 14:50:01
【问题描述】:
我有一个部署到外部 Tomcat 容器(不使用嵌入式容器)的 Spring Boot 应用程序,并且正在尝试设置执行器。问题是application.properties 中的management.port 似乎没有被Tomcat 认可。当我使用嵌入式 Tomcat 运行 Spring Boot 时,它工作得很好。
例如,在application.properties 中设置以下内容:
management.port=9010
嵌入式容器的工作端点
http://localhost:9010/health
外部容器的非工作端点在端口 8080 上运行
http://localhost:9010/healthhttp://localhost:8080/healthhttp://localhost:9010/<appName>/healthhttp://localhost:8080/<appName>/health
我需要在 Tomcat 容器中进行特殊配置来公开 Spring Boot 执行器端点吗?
我尝试设置环境变量MANAGEMENT_PORT。大多数(几乎所有)可用文档都使用嵌入式 Tomcat,因此跟踪这个问题已被证明具有挑战性。
对此答案的第三条评论提供了一些可能的见解:https://stackoverflow.com/a/28689853/2601060,它指向一个 GitHub 文件,表明如果未设置管理端口,它将与服务器端口相同。
【问题讨论】:
-
您发布的链接有一个答案,说明在使用嵌入式 tomcat 时,执行器使用了一个单独的实例。大概在部署到外部 tomcat 时这不起作用。可能有一种方法可以实现您想要做的事情,但它必须在您的外部 tomcat 配置中,嵌入式 tomcat 的属性将不起作用。
-
@ci_ 感谢您的回复-您知道在外部 tomcat 中配置它的任何方法吗?
-
不幸的是没有,否则我会发布答案。我只是评论指出你在正确的方向。我们在这里为执行器使用单独的上下文路径,而不是单独的端口。
标签: tomcat spring-boot