zoukankan      html  css  js  c++  java
  • java web部署 启动线程 (监听socket等) 拂晓风起

    很简单……

    多写一个Servlet,在init函数中启动对应的线程。

    把这个Servlet加到web.xml中,例如

        <servlet>
            <servlet-name>EchoServiceStartUpServlet</servlet-name>
            <servlet-class>EchoService.EchoServiceStartUpServlet</servlet-class>
            <load-on-startup>3</load-on-startup>
        </servlet>

    注意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();
    }
    }

     这里就有启动和释放的操作了~~~

    然后在web.xml中这样配置:

    在web-app节点下加入:

        <context-param>
            <param-name>socketPort</param-name>
            <param-value>2230</param-value>
        </context-param>
        <listener>
            <description>Socket服务随web启动而启动</description>
            <listener-class>EchoService.ServerSocketListener</listener-class>
        </listener>

    kenkofox@qq.com https://github.com/kenkozheng 欢迎投简历给我,一线大厂工作机会
  • 相关阅读:
    Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
    练oj时的小技巧(大多都在oj记录里,这是被忘记的部分)
    HDU 3032 (SG打表找规律)
    SG 大法(Sprague-Grundy函数)
    基于Linux的MySQL基本操作
    java.sql.SQLException: Unable to load authentication plugin ‘caching_sha2_password‘.解决方法
    手把手教你安装和配置MYSQL数据库
    理解Python闭包,这应该是最好的例子
    SQL基础
    MySQL令人咋舌的隐式转换
  • 原文地址:https://www.cnblogs.com/kenkofox/p/1732024.html
Copyright © 2011-2022 走看看