0
私のnettyハンドラでは、例外キャッシュメソッドをにオーバーライドし、Netty ObjectDecoderによってスローされたTooLongFrameExceptionをキャッチします。 その例外の場合は、そのエラーに関する情報を含むメッセージをサーバーに送信します。 サーバーはそのメッセージを受信し、次にさらにデータを送信しようとします。問題は、私のハンドラがそのデータを読み続けるように見えないことです。例外をキャッチした後にNettyハンドラがデータを読み続けるようにするにはどうすればよいですか?
私はどのように私はネッティーObjectDecoderによってスローされた例外をキャッチした後、私のハンドラは、データを読み続けることができますか?ネッティー4.1.18.Finalimport io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.TooLongFrameException;
public final class MyHandler extends SimpleChannelInboundHandler<MyObject> {
@Override
protected void channelRead0(ChannelHandlerContext channelHandlerContext, MyObject obj) throws Exception {
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
if (cause instanceof TooLongFrameException) {
ctx.writeAndFlush(messageAboutError);
return;
} else
ctx.writeAndFlush(messageAboutUnexpectedError);
super.exceptionCaught(ctx, cause);
}
}
を使用