2 回答
TA贡献1852条经验 获得超7个赞
您的问题是 Tomcat 在错误的端口上启动。从你的日志来看...
2019-09-26T17:51:18.386+07:00 [APP/PROC/WEB/0] [OUT] 2019-09-26 10:51:18.386 INFO 18 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8202 (http)
很明显,它是在端口 8202 上启动的。这会破坏平台运行状况检查,因为平台要求您在端口 8080 上启动应用程序。由于应用程序没有侦听请求的端口,因此运行状况检查无法成功完成,Cloud Foundry 必须假设您的应用程序从未启动,因此它会尝试重新启动应用程序,希望它下次能够正常工作。不幸的是,这是一个配置错误,因此它永远不会通过重新启动来修复,因此会永远循环。
至于为什么您的应用程序在端口 8202 上启动,目前尚不清楚。我没有看到它在您指定的 application.yml 中设置,但它可能在其他地方设置。
对于 Spring Boot,您正在寻找server.port
设置。它可以在许多地方设置,包括 application.properties、application.yml,作为 env 变量或系统属性。需要将其设置为 8080,或者更好的$PORT
是由 Cloud Foundry 设置的环境变量,并包含应用程序应侦听的预期端口。(附注,Java 构建包应该为您配置此选项,除非您覆盖启动命令或执行某些操作来更改其默认行为)。
当 Tomcat 报告它已在端口 8080 上启动并且运行状况检查通过时,您就会知道这是正确的。
希望有帮助!
TA贡献1871条经验 获得超8个赞
我遇到了同样的问题,然后我意识到该属性server.port=8083
意外地传播到了部署的环境中。我确保仅在本地计算机上运行时设置此属性,并且我的问题得到解决。
添加回答
举报