问题 Tomcat 内部SpringMVC启动了一个 TCP端口9681,从新打包更新但TCP程序仍被占用
处理方案
RunTime.getRunTime().addShutdownHook的用法
https://blog.csdn.net/weixin_39098944/article/details/108458891
@Component
public class NettyServerListener implements CommandLineRunner {
/** 设备服务 */
@Autowired private LockNettyServer lockNettyServer;
@Override
public void run(String... args) throws Exception {
lockNettyServer.start();
// 在JVM销毁前关闭服务
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
lockNettyServer.close();
}
});
}}
其他
处理方式2:
把SpringMVC改为SpringBoot
不使用ContextLoadLisener
使用Spring的线程启动TCP程序,打包更新实例会销毁Spring线程,这个没试过。
< Connector port=“8080” protocol=“HTTP/1.1”
connectionTimeout=“20000”
redirectPort=“8443” />
qt
web服务之Tomcat管理配置
https://www.cnblogs.com/xuanlv-0413/p/15168153.html