我有一个接受特定端口上的SSL连接的应用程序。当我从Websphere管理控制台停止应用程序然后再次启动它时,我得到一个异常,抱怨该端口仍在使用中。我需要完全关闭并重新启动Websphere以使应用程序再次运行。
在Java中停止侦听端口的正确方法是什么?
答案 0 :(得分:2)
我不确定它是如何在Java中完成的,但关闭套接字(ServerSocket上的.close()?)将关闭端口。尽管如此,许多操作系统在关闭它后不会让你重复使用同一个端口大约30秒,以防止新连接读取旧消息。
答案 1 :(得分:2)
创建一个上下文侦听器并在web.xml中注册它。然后,您可以在contextDestroyed()
来电中关闭所有打开的套接字。
有关详细信息,请参阅此处
答案 2 :(得分:1)
只需关闭套接字句柄,例如yourSocket.close()
。 This example可能有帮助。
答案 3 :(得分:0)
ServerSocket ss = new ServerSocket();
ss.setReuseAddress(true);
ss.bind(port);