Java Netty large POJO传输错误:TooLongFrameException

Java Netty large POJO传输错误:TooLongFrameException,java,nio,netty,Java,Nio,Netty,我有一个网络管道,例如: return Channels.pipeline( new ObjectEncoder(), new ObjectDecoder(), new MyCustomCommandServerHandler()); 对于客户端和服务器,其中: MyCustomCommandServerHandler extends SimpleCh

我有一个网络管道,例如:

            return Channels.pipeline(
                    new ObjectEncoder(),
                    new ObjectDecoder(),
                    new MyCustomCommandServerHandler());
对于客户端和服务器,其中:

MyCustomCommandServerHandler extends SimpleChannelUpstreamHandler
我得到的错误是,我试图从服务器发送回客户端的POJO太大,导致以下错误:

org.jboss.netty.handler.codec.frame.TooLongFrameException:调整后的帧长度超过1048576:1816357-已丢弃


如何调整ObjectEncoder/Decoder以获取更大尺寸的POJO对象?

您可以通过构造函数传递它。只需签出javadocs。

哪个构造函数?我没能在API中找到它?刚刚找到。但为什么当您将其留空时,它不做同样的操作,因为它说它将放置估计长度512,然后它将自动增长?攻击者可以发送一个非常大的对象来饱和堆(=DoS),因此在API中,当它说:“如果序列化表单的长度超过此值,内部缓冲区将自动扩展,但会以内存带宽为代价。”。“这是错误的。它不会自动扩展,你必须预先猜测最大的对象大小…如果我不知道数据集会比正常数据集大,有没有办法自动增加?