0

我是网络新手。我更改了 HexDumpProxy 的示例,通过添加 http 编解码器处理程序将解码的 http 消息从服务器通道写入后端客户端通道,当客户端获得 http 响应时,它将解码消息并将响应消息写回 inboundChannel(在messageReceived 事件)。但这总是会导致 io.netty.buffer.IllegalBufferAccessException 异常。我将非常感谢您的任何帮助。谢谢你的时间。

io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:114) 处 io.netty.handler.codec.http.DefaultFullHttpRequest.release(DefaultFullHttpRequest.java:69) 处的 io.netty.buffer.IllegalBufferAccessException。 buffer.BufUtil.release(BufUtil.java:76) 在 io.netty.channel.ChannelInboundMessageHandlerAdapter.inboundBufferUpdated(ChannelInboundMessageHandlerAdapter.java:100) 在 io.netty.channel.ChannelHandlerUtil.handleInboundBufferUpdated(ChannelHandlerUtil.java:62) .channel.DefaultChannelHandlerContext.invokeInboundBufferUpdated(DefaultChannelHandlerContext.java:1031) 在 io.netty.channel.DefaultChannelHandlerContext.fireInboundBufferUpdated0(DefaultChannelHandlerContext.java:998) 在 io.netty.channel.DefaultChannelHandlerContext。fireInboundBufferUpdated(DefaultChannelHandlerContext.java:978) at io.netty.channel.ChannelInboundMessageHandlerAdapter.inboundBufferUpdated(ChannelInboundMessageHandlerAdapter.java:100) at io.netty.channel.DefaultChannelHandlerContext .invokeInboundBufferUpdated(DefaultChannelHandlerContext.java:1031) 在 io.netty.channel.DefaultChannelHandlerContext.fireInboundBufferUpdated0(DefaultChannelHandlerContext.java:998) 在 io.netty.channel.DefaultChannelHandlerContext.fireInboundBufferUpdated(DefaultChannelHandlerContext.java:978) 在 io.netty.handler。 io.netty.handler.codec.ByteToMessageDecoder.inboundBufferUpdated(ByteToMessageDecoder.java:69) 在 io.netty.channel 的 codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:441)。ChannelInboundByteHandlerAdapter.inboundBufferUpdated(ChannelInboundByteHandlerAdapter.java:46) 在 io.netty.channel.CombinedChannelDuplexHandler.inboundBufferUpdated(CombinedChannelDuplexHandler.java:175) 在 io.netty.channel.DefaultChannelHandlerContext.invokeInboundBufferUpdated(DefaultChannelHandlerContext.java:1031) 在 io.netty.channel .DefaultChannelHandlerContext.fireInboundBufferUpdated0(DefaultChannelHandlerContext.java:998) 在 io.netty.channel.DefaultChannelHandlerContext.fireInboundBufferUpdated(DefaultChannelHandlerContext.java:978) 在 io.netty.channel.DefaultChannelPipeline.fireInboundBufferUpdated(DefaultChannelPipeline.java:828) 在 io.netty。 channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:118) 在 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:429) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:322) 在 io.netty.util.concurrent.SingleThreadEventExecutor $2.run(SingleThreadEventExecutor.java:114) at java.lang.Thread.run(Unknown Source)

4

1 回答 1

0

自此版本以来 API 已更改。请使用最新版本 4.0.0.CR9。

于 2013-07-06T19:04:35.403 回答