2013-07-02 62 views
0

對於套接字連接,我使用Netty3.5.9(jdk1.6.43),大多數情況下,它工作正常,但有時會顯示:Netty引發IOException異常:通過該套接字重置與遠程套接字的連接

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空 警告復位: EXCEPTION,請執行 cfca.xfraud.collector.system.sockettype.netty.NettyAnalyzerHandler.exceptionCaught()以進行正確處理。

這我exceptionCaught()方法是:

公共無效exceptionCaught(ChannelHandlerContext CTX,ExceptionEvent E)拋出異常{

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

} 

雖然IOException異常有時顯示,但整個應用程序似乎沒有任何不好的影響和劇照效果很好,那麼真正的問題是什麼?我應該更改代碼以防止發生異常。

+0

它*真*說「java.io.IOException:與遠程套接字的連接被該套接字重置」?或者它說「連接重置由對等」? – EJP

+0

它真的說「java.io.IOException:與遠程套接字的連接已被該套接字重置」,我很確定。 – user1793814

回答

0

這是沒有什麼值得關注的......這意味着遠程對等關閉了連接,netty在讀取完成後檢測到它。所以你可以放心忽略這個例外。

+0

好的,非常感謝,但是我怎樣才能防止寫這個異常日誌到日誌文件。畢竟,它讓我感到不舒服,看到這excepiton的話... – user1793814

+0

重寫exceptionCaught(...)併吞下它們? –