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
意外地傳播到了部署的環境中。我確保僅在本地計算機上運行時設置此屬性,并且我的問題得到解決。
添加回答
舉報