我在我的專案中使用 Apache Tomcat 9 服務器作為 Maven 依賴項。它作業正常,現在我需要添加一個健康端點,這樣如果一切運行正常,它將回傳 200 OK。
我開始了解 Tomcat 9 中的 HealthCheckValve ( https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Health_Check_Valve ) 選項,這很有幫助。但我無法弄清楚在哪里添加這個以及配置這個閥門的程序。據我所知,如果服務器是獨立的,我們可以在 Server.xml 中進行配置,但由于 Tomcat 服務器是一個 Maven 依賴項,我不知道我應該如何以及在哪里配置它。
有人可以幫我在 Apache Tomcat 9 中配置健康端點(作為 Maven 依賴項)嗎?
uj5u.com熱心網友回復:
請參閱檔案,然后將HealthCheckerValve添加到 server.xml。閥門進入引擎、主機或背景關系元素。在與 Tomcat 一起打包的 server.xml 中,您可以找到應將您引導至正確位置的注釋。
在嵌入 Tomcat 的某個版本時,您將無法獲得該檔案,因此您需要以編程方式組裝這些容器的實體。
檢查此示例中的啟動器應用程式:https ://www.oracle.com/webfolder/technetwork/tutorials/obe/java/basic_app_embedded_tomcat/basic_app-tomcat-embedded.html
雖然我找不到像addValve()找到init()這樣的方法您可以使用該方法來提供將由 Tomcat 讀取的 server.xml。
uj5u.com熱心網友回復:
我看到了Tomcat 9.0.x 中所有可用閥門的檔案。
為了找到這個特定任務的解決方案,我嘗試在嵌入式 tomcat 中尋找其他閥門的配置,例如遠程地址閥門。
經過大量搜索,我找到了user967710的解決方案。
我執行以下操作以將 Health Check Valve 添加到我的 Tomcat 9.0.64 :
Tomcat tomcat = new Tomcat();
tomcat.getEngine().setName(UUID.randomUUID().toString());
tomcat.setPort(context.port);
tomcat.setHostname(context.hostname);
tomcat.getHost().setAppBase(".");
Valve valve = new HealthCheckValve();
tomcat.getHost().getPipeline().addValve(valve);
無論您如何為您的專案配置 Tomcat,即從第 1 行到第 5 行,但實際上最后 2 行,即第 6 行和第 7 行,在您添加閥門的地方很重要。
可以在 host:port/health 上訪問健康端點。例如,如果它托管在 http://localhost:4000 那么健康端點將是 http://localhost:4000/health
該端點將回傳 200 OK,并帶有一個簡單的 JSON 回應,說明 Tomcat 服務器狀態,即“UP”(如果一切正常并正在運行)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/513945.html
上一篇:在Tomcat的“aQute.bnd.annotation.spi.ServiceConsumer”型別中找不到注釋方法“value()”
