2012-04-27 85 views
3

我正在將Tomcat 7嵌入到我的Java應用程序中。在構造函數中我設置變量:檢查嵌入式Tomcat是否啓動

this.tomcat = new Tomcat(); 
this.started = false; 

我再有另一個叫在以後的方法來啓動它:

this.tomcat.start(); 
this.started = true; 

我用this.started變量來跟蹤我是否曾經啓動服務器。意味着服務器的狀態保持多次(由Tomcat內部並且再次在變量中)。理想情況下,我想僅使用Tomcat API來獲取服務器的狀態,但我一直無法找到一種方法來實現它。

我發現的最佳選擇是嘗試打開與服務器的連接。這似乎是一個緩慢的(在CPU時間範圍內)和資源效率低下的解決方案。

+0

你想要做什麼上叫什麼?驗證您的應用是否正在運行?驗證Tomcat是否正在運行?或者是其他東西? – 2012-04-27 18:58:03

+0

@DavidFeitosa我省略了很多代碼。我們有可以更改的配置,但只有當Tomcat尚未啓動或停止時。如果用戶嘗試重新配置正在運行的服務器,我們希望引發IllegalStateException。 – 2012-04-27 19:26:12

回答

2

this.tomcat.getServer()。getState();

this.tomcat.getServer()getStateName();

這些都是標準的生命週期方法,並且可以在服務器或任何引擎,主機,上下文,連接器,境界等