Netty, чтение результатов сообщения с IllegalReferenceCountgException refCnt: 0
Я новичок в netty и пытаюсь получить байтовый ответ от сервера (не netty). Тем не менее, я считаю, что неправильно понял и подсчитал количество ссылок. Читая ответ, я сталкиваюсь с
IllegalReferenceCountException: refCnt:0
То, что я делаю, не так уж сложно. Я настраиваю клиента, затем отправляю сообщение и жду ответа.
Мой ResponseHandler выглядит так:
public class ResponseHandler extends DriverResponseHandler
{
private ByteBuf received;
@Override
public void handlerAdded(ChannelHandlerContext ctx) throws Exception
{
super.handlerAdded(ctx);
received = ctx.alloc().buffer(32);
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
{
super.channelRead(ctx, msg);
received.writeBytes((ByteBuf) msg);
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception
{
super.channelReadComplete(ctx);
if (received.writerIndex() == received.capacity() || received.readerIndex() == received.capacity()) {
received.clear();
received = ctx.alloc().buffer(32);
}
processResponse(received);
}
}
читая ответ в
1 ответ
Решение
Хорошо, я решил проблему. Все, что мне нужно сделать, это добавить ByteToMessageDedcoder, иначе входящий ответ никогда не будет выделен, поэтому он не будет доступен.