Java 我应该使用什么过滤器通过ApacheMina发送ArrayList

Java 我应该使用什么过滤器通过ApacheMina发送ArrayList,java,sockets,network-programming,nio,apache-mina,Java,Sockets,Network Programming,Nio,Apache Mina,我有使用ApacheMina框架的服务器和客户端应用程序。我需要从服务器向客户端发送一个大的arraylist(包含10000个自定义对象)。我首先想到使用GSON字符串传递arraylist,但我认为,创建那种巨大的字符串并发送它不是一种正确的方式 在我的客户端应用程序中,我编写了一个连接方法: public void connect() throws InterruptedException { Thread t = new Thread(new Runnable()

我有使用ApacheMina框架的服务器和客户端应用程序。我需要从服务器向客户端发送一个大的arraylist(包含10000个自定义对象)。我首先想到使用GSON字符串传递arraylist,但我认为,创建那种巨大的字符串并发送它不是一种正确的方式

在我的客户端应用程序中,我编写了一个连接方法:

public void connect() throws InterruptedException 
{

    Thread t = new Thread(new Runnable() 
    {
        @Override
        public void run() 
        {

            connector = new NioSocketConnector();
            connector.getSessionConfig().setReadBufferSize(1024);
            TextLineCodecFactory t = new TextLineCodecFactory(Charset.forName("UTF-8"));
            t.setEncoderMaxLineLength(100000);
            t.setDecoderMaxLineLength(100000);
            connector.getFilterChain().addLast("logger", new LoggingFilter());
            connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(t));

            connector.setHandler(handler);
            ConnectFuture future = connector.connect(new InetSocketAddress("localhost", PORT));
            future.awaitUninterruptibly();

            if (!future.isConnected()) 
            {
                return;
            }

            IoSession session = future.getSession();
            session.getConfig().setUseReadOperation(true);
            session.getCloseFuture().awaitUninterruptibly();

            connector.dispose();
        }
    });
    t.start();
    Thread.sleep(1000);
}
我应该使用什么过滤器发送对象或容器而不将它们转换为字符串?是关于BufferedWriteFilter还是WriteRequestFilter?如果是这样,我如何使用它们呢?

我找到了答案

通过在客户端和服务器端使用ObjectSerializationCodeFactory,我可以传递自定义对象和集合

  ObjectSerializationCodecFactory oscf = new ObjectSerializationCodecFactory();
  oscf.setDecoderMaxObjectSize(1048576);
  connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(oscf)