2012-05-08 155 views
1

我在Mac OS X Lion 10.7.3上使用Netbeans 7.1.2。Netbeans运行 - >停止生成不会停止正在运行的java进程

我有一个简单的java服务器(使用netty)项目,并且在构建并运行项目之后,尝试通过运行 - >停止运行来停止运行构建它不会终止java服务器进程。

例如,我的服务器应用程序使用端口8080,甚至在我停止从netbeans运行之后,端口8080正在使用中,应用程序继续运行。我必须手动从活动监视器中终止Java进程。

什么是正确的程序结束由Netbeans启动运行的应用程序?

非常感谢您的帮助。先谢谢了。

回答

0

查看文档:http://netty.io/docs/stable/guide/html/。向下滚动至第9节。关闭应用程序。

你的主要应用AHS看起来是这样的:

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.通道关闭时关闭所有频道并释放资源。

希望这会有所帮助。

+0

我只是使用netty示例中给出的HttpSnoopServer(org.jboss.netty.example.http.snoop)。我在服务器处理程序中看到以下代码。 ChannelFuture future = e.getChannel()。write(response); //写入操作完成后关闭非保持连接。 if(!keepAlive) { future.addListener(ChannelFutureListener.CLOSE); }' 和你在那里指定的不一样吗? –