0

私はソケット接続に Netty3.5.9(jdk1.6.43) を使用していますが、ほとんどの場合はうまく機能しますが、時々次のように表示されます。

java.io.IOException:リモートソケットとの接続がそのソケットによってリセットされました

at sun.nio.ch.FileDispatcher.read0(Native Method)

at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:33)

at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:234)

at sun.nio.ch.IOUtil.read(IOUtil.java:201)

at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)

at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:321)

at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:280)

at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:200)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:896)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)

at java.lang.Thread.run(Thread.java:735)

2013-7-2 8:54:18 org.jboss.netty.channel.SimpleChannelUpstreamHandler null 警告: 例外、適切な処理のために cfca.xfraud.collector.system.sockettype.netty.NettyAnalyzerHandler.exceptionCaught() を実装してください。

私の exceptionCaught() メソッドは次のとおりです。

public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {

    log.error("", e.getCause());
    super.exceptionCaught(ctx, e);

}

IOException が表示されることもありますが、アプリケーション全体に悪影響はないようで、問題なく動作しているため、実際の問題は何なのか、例外を防ぐためにコードをどのように変更すればよいのでしょうか。

4

1 に答える 1

1

これは気にする必要はありません...これは、リモートピアが接続を閉じ、読み取りが完了するとnettyがそれを検出したことを意味します。したがって、例外を無視しても安全です。

于 2013-07-04T05:04:36.160 に答える