io.netty.handler.codec.DecoderException: java.lang.UnsupportedOperationException: direct buffer

自定义netty的解码器decode读取数据报错,版本:


    io.netty
    netty-all
    4.1.77.Final

报错的是这行代码:

// 读取消息内容
byte[] content = in.readBytes(in.readableBytes()).array();

由于ByteBuf是使用了DirectBuffer,所以不支持array()的操作

改为:

byte[] data = new byte[contentLength];
in.readBytes(data);

程序正常运行,OK!

你可能感兴趣的:(java,netty)