2

Mac OS X Lion 10.7.3 で Netbeans 7.1.2 を使用しています。

単純な Java サーバー (netty を使用) プロジェクトがあり、プロジェクトをビルドして実行した後、Run->Stop Build で実行を停止しようとしましたが、Java サーバー プロセスは終了しません。

たとえば、私のサーバー アプリはポート 8080 を使用しており、netbeans からの実行を停止した後でも、ポート 8080 が使用されており、アプリは実行を続けています。アクティビティ モニターから Java プロセスを手動で強制終了する必要があります。

Netbeans によって開始された実行中のアプリを終了する正しい手順は何ですか?

よろしくお願いいたします。ありがとうございます。

4

1 に答える 1

0

ドキュメントをご覧ください: 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. に保存します。シャットダウンするときは、すべてのチャネルを閉じてリソースを解放します。

お役に立てれば。

于 2012-05-09T02:48:43.850 に答える