Netty
を使用してサーバーに接続されているJava TCPクライアントがあります。 切断されたチャネルに書き込むと、例外が発生します。どの問題が原因であるかは重要ではありませんが、どのメッセージがに送信されていないかが重要です。これはに送信され、例外が発生しました。どのメッセージがNettyの書き込みで例外を引き起こすかを調べるには?
どのように[ChannelPromiseまたはChannelFutureを使用して]それを見つけるか?
ここで私はちょうど 'f.isSuccess()==true
'を得るが、それは成功していない!メッセージは送信されませんでした!
ChannelPromise promise = c.newPromise();
promise.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture f) {
System.err.println("<TCPIn: promise write operationComplete.");
if (!f.isSuccess()) {
System.err.println("<TCPIn[writting]: promise write ERROR:");
f.cause().printStackTrace();
f.channel().close();
}
}
});
channel.writeAndFlush(buf,promise);
あなたはbufオブジェクトにリスナー自体からアクセスできませんか?これはほとんどの場合に有効ですが、EJPが彼の答えで言うところの – Ferrybig