자바 웹 배포 시작 스 레 드(감청 socket 등)

1968 단어 Java Web
간단 해..
Servlet 을 하나 더 써 서 init 함수 에서 해당 하 는 스 레 드 를 시작 합 니 다.
이 Servlet 를 웹.xml 에 추가 합 니 다.예 를 들 어
   
        EchoServiceStartUpServlet
        EchoService.EchoServiceStartUpServlet
        3
   

load-on-startup 에 주의 하 세 요.
뒤쪽 숫자 는 0 보다 크 고 우선 순 위 를 나타 내 며 작 을 수록 우선 순위 가 높다.
설정 하지 않 거나 0 보다 작 으 면 시작 하지 않 음 을 표시 합 니 다.
그런데 이게 큰 문제 야!!Tomcat 이 꺼 졌 을 때 스 레 드 를 닫 지 않 았 다 는 것 입 니 다.감청 포트 가 풀 리 지 않 았 을 수도 있 습 니 다.
Listener 써 야 지.

public class ServerSocketListener implements ServletContextListener {  
    private EchoServerThread echoServerThread;  
  
    public void contextInitialized(ServletContextEvent event) {  
        String port = event.getServletContext().getInitParameter("socketPort");  
//        event.getServletContext().log("++++++++++++++++++++++++++++++++");  
//        event.getServletContext().log("++++ Socket   web      ++++");  
        echoServerThread = new EchoServerThread(Integer.parseInt(port));  
        echoServerThread.start();  
//        event.getServletContext().log("++++ Socket        ,  :" + port + " ++++");  
    }  
  
    //tomcat   ,    ,      
    public void contextDestroyed(ServletContextEvent event) {  
        echoServerThread.stopThread();  
    }  
}  

여기 시동 걸 고 풀 어 주 는 동작 이 있 습 니 다.
그리고 웹.xml 에서 이렇게 설정 합 니 다:
웹-app 노드 에 추가:
   
        socketPort
        2230
   

   
        Socket 서 비 스 는 웹 시작 에 따라 시작 합 니 다
        EchoService.ServerSocketListener
   

좋은 웹페이지 즐겨찾기