我在Mac OS X Lion 10.7.3上使用Netbeans 7.1.2。
我有一个简单的java服务器(使用netty)项目,在我构建并运行该项目后,尝试通过运行>停止构建停止运行,它不会终止java服务器进程。
例如,我的服务器应用程序使用端口 8080,即使在我停止从 netbeans 运行后,端口 8080 仍在使用中,并且应用程序继续运行。我必须从活动监视器手动终止 java 进程。
结束由 Netbeans 启动的正在运行的应用程序的正确过程是什么?
非常感谢您的帮助。提前谢谢。
查看文档:http://netty.io/docs/stable/guide/html/。向下滚动到第 9 部分。 关闭应用程序。
您的主应用程序看起来像这样:
package org.jboss.netty.example.time;
public class TimeServer {
static final ChannelGroup allChannels = new DefaultChannelGroup("time-server"(35));
public static void main(String[] args) throws Exception {
...
ChannelFactory factory = ...;
ServerBootstrap bootstrap = ...;
...
Channel channel = bootstrap.bind(...);
allChannels.add(channel);
...
// Shutdown code
ChannelGroupFuture future = allChannels.close();
future.awaitUninterruptibly();
factory.releaseExternalResources();
}
}
您的处理程序需要:
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) {
TimeServer.allChannels.add(e.getChannel());
}
您必须:1. 将所有频道存储在一个ChannelGroup
中2. 关闭时,关闭所有频道并释放资源。
希望这有帮助。