原文連接:http://blog.csdn.net/dead_cicle/article/details/7073433java
1.SOCKET監聽置於servlet的init方法中,在web.xml里加入<load-on-startup>1<load-on-startup>,隨TOMCAT啓動而啓動.web
2.在實際過程當中卻遇到了TOMCAT不能啓動的問題,Sokcet 監聽while(true)的循環hold住了tomcat的啓動!tomcat
3.開始想到使用Thread的yeild方法,未果。(也許是沒能正確引用。sleep是確定不行的,線程依然在hold着。)spa
4.上廁所回來又在網上一通好找,最後找到一個方法,Socket繼承Thread,啓動方法放到run,裏,而後在線程使用時,設置爲守護線程。實現目的是tomcat啓動完成後仍是可以一直運行:.net
轉載例子:線程
StartThread.java import java.io.IOException; public class StartThread extends Thread { public void run() { try { Server server = new Server(); server.service();//啓動開啓服務,監聽 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } StartServer.java import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; public class StartServer extends HttpServlet { public void init() throws ServletException { Thread s = new StartThread(); s.setDaemon(true);// 設置線程爲後臺線程,tomcat不會被hold,啓動後依然一直監聽。 s.start(); } }