JAVA多线程开启websocket_java web部署 启动线程 (监听socket等)

很简单……

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

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

EchoServiceStartUpServlet

EchoService.EchoServiceStartUpServlet

3

注意load-on-startup。

后边数字要大于0,表示优先级,越小优先级越高。

不设置或者小于0表示不启动。

但这样有个很大的问题!!就是没有在Tomcat关闭的时候关闭线程,也许就是没有释放监听的端口。

应该用Listener。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png代码

publicclassServerSocketListenerimplementsServletContextListener {privateEchoServerThread echoServerThread;publicvoidcontextInitialized(ServletContextEvent event) {

String port=event.getServletContext().getInitParameter("socketPort");//event.getServletContext().log("++++++++++++++++++++++++++++++++");//event.getServletContext().log("++++ Socket服务随web启动而启动 ++++");echoServerThread=newEchoServerThread(Integer.parseInt(port));

echoServerThread.start();//event.getServletContext().log("++++ Socket服务已经启动完毕,端口:" + port + " ++++");}//tomcat关闭时,关闭线程,释放端口publicvoidcontextDestroyed(ServletContextEvent event) {

echoServerThread.stopThread();

}

}

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

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

在web-app节点下加入:

socketPort

2230

Socket服务随web启动而启动

EchoService.ServerSocketListener

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值