2015-04-01 32 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