2015-04-01 66 views
0

我們實現了嵌入式tomcat模型java應用程序。並從java -jar命令運行war文件。問題是我如何停止服務器。並且在服務器停止之前,已經觸發了對服務器的請求應該被處理。那麼只有我必須停止服務器。我如何實現這一點。提前致謝。如何正常停止嵌入式Tomcat,只有當前處理請求必須完成後才能停止tomcat。

+1

我不是100%確定,但我認爲這就是'Tomcat.stop()'所做的。你可以實現一個簡單的servlet,等待一分鐘,看看'Tomcat.stop()'是否在等待它。不要忘記調用'Tomcat.destroy()'來完全喊出tomcat。 – BetaRide 2015-04-01 07:59:22

+0

我需要擴展'Tomcat'類嗎? – Harinath 2015-04-01 08:14:09

+0

不,結帳https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/startup/Tomcat.html – BetaRide 2015-04-01 10:48:20

回答

0

讓您的應用程序時,它完成寫入文件/ somedir/yoursecretfile

如果使用Linux,做一個cron作業,週期性地檢查文件/ somedir/yoursecretfile存在,如果該文件存在,停止Web服務器(也許用ps | grep | xargs或類似的東西)。

如果使用其他操作系統,請對該操作系統和腳本使用cron替代以停止Web服務器。

+0

實際上使用jmx mbeans我可以停止服務器(通過jconsole服務mbean)。我可能需要擴展Tomcat類,並且必須進行定製。這是個好主意嗎? – Harinath 2015-04-01 08:06:05