我将Apache Tomcat 7.0.30嵌入到我的应用程序中。我使用的是Tomcat类,我的应用程序需要动态添加和删除连接器(HTTP)。
现在,在删除连接器时,应用程序未部署,但端口仍处于占用状态,连接器继续侦听该端口。我正在使用自定义的HTTP连接器。
以下是我的源代码中的一段代码:
对于移除连接器:
if( connector != null )
{
connector.decUsage();
if( connector.getUsage() == 0 )
{
connector.stop();
this.tomcat.getService().removeConnector( connector );
}
}用于添加连接器:
this.tomcat.getService().addConnector(连接器);
我知道港口不是免费的。因为当我再次尝试部署到同一端口时,它会给出一个已在使用中的地址异常。我已经为这个问题浏览了很多次,但都无济于事。任何帮助都将不胜感激。
谢谢
发布于 2013-07-30 18:57:34
您需要调用connector.destroy()。默认情况下,端口绑定是在init中完成的,因此相应地,解除绑定也是在销毁中完成的。
如果要重用连接器,请将bindOnInit设置为false。则端口将在启动/停止时绑定/解绑。
connector.setProperty("bindOnInit", "false")连接器在移除之前已停止,因此在调用removeConnector时无需显式停止它。
https://stackoverflow.com/questions/16526027
复制相似问题