servlet中的无限循环 - 可以恢复吗?

Mo.*_*Mo. 5 java servlets

今天我修复了一个应用程序中的错误,该错误可能导致servlet请求/响应周期中的无限循环.

所以只是出于好奇:如果我的servlet实际上被困在for(;;)循环中会发生什么?

是否有可能恢复?tomcat会检测到这个吗?可以在不重新启动服务器的情况下杀死此实例吗?

或者这是可能发生的最糟糕的事情之一,以及一种非常快速的杀死网络容器的方法?

编辑:这是一个真正的无限循环消耗CPU始终消耗CPU而不是内存.我让它运行了几分钟.我想,我可以确认tomcat不会检测到这种事情:-)

Dav*_*d Z 1

我不认为 Tomcat 会检测到无限循环。如果 servlet 没有通过其循环消耗所有 CPU 时间,您也许可以使用 Tomcat 管理器停止该 servlet。否则,重新启动服务器可能是最安全且最简单的。

这就是为什么您在部署应用程序之前在本地进行广泛的测试;-)并且要非常小心所有循环都有退出条件......