2 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超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 上啟動的。這會破壞平臺運(yùn)行狀況檢查,因?yàn)槠脚_要求您在端口 8080 上啟動應(yīng)用程序。由于應(yīng)用程序沒有偵聽請求的端口,因此運(yùn)行狀況檢查無法成功完成,Cloud Foundry 必須假設(shè)您的應(yīng)用程序從未啟動,因此它會嘗試重新啟動應(yīng)用程序,希望它下次能夠正常工作。不幸的是,這是一個配置錯誤,因此它永遠(yuǎn)不會通過重新啟動來修復(fù),因此會永遠(yuǎn)循環(huán)。
至于為什么您的應(yīng)用程序在端口 8202 上啟動,目前尚不清楚。我沒有看到它在您指定的 application.yml 中設(shè)置,但它可能在其他地方設(shè)置。
對于 Spring Boot,您正在尋找server.port
設(shè)置。它可以在許多地方設(shè)置,包括 application.properties、application.yml,作為 env 變量或系統(tǒng)屬性。需要將其設(shè)置為 8080,或者更好的$PORT
是由 Cloud Foundry 設(shè)置的環(huán)境變量,并包含應(yīng)用程序應(yīng)偵聽的預(yù)期端口。(附注,Java 構(gòu)建包應(yīng)該為您配置此選項(xiàng),除非您覆蓋啟動命令或執(zhí)行某些操作來更改其默認(rèn)行為)。
當(dāng) Tomcat 報告它已在端口 8080 上啟動并且運(yùn)行狀況檢查通過時,您就會知道這是正確的。
希望有幫助!

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個贊
我遇到了同樣的問題,然后我意識到該屬性server.port=8083
意外地傳播到了部署的環(huán)境中。我確保僅在本地計算機(jī)上運(yùn)行時設(shè)置此屬性,并且我的問題得到解決。
添加回答
舉報