無限ループ状態になってるサーブレットをアンデプロイできるか?
上のエントリの予備調査。こんなしょうもないコードを書いてテスト。
package example; import javax.servlet.http.*; import javax.servlet.*; import java.io.IOException; public class LoopServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { } protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { for (;;) {} } public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init..."); } public void destroy() { System.out.println("destory.."); } }
結論から言うと,アンデプロはできる。でも,無限ループ状態になったスレッドは死なない。
わざわざ試すまでもないんだけどね。ちょっと期待してみたかったんだ。:-(
ps.
試してみたAPサーバは,手元にあったTomcat 5.5,WebLogic 8.1,OC4J 10.1.3の3つ。どれも管理コンソールからデプロイ&アンデプロイを行ってみた。