我已经使用 Spring Remoting over HttpInvoker 开发了一个客户端(Eclipse)服务器(Tomcat 上的 Spring Framework)应用程序。
一些用例需要将大文件 (>150MB) 从服务器传输到客户端。由于我们在客户端使用 32 位系统,我总是遇到 Java 堆大小问题(尽管我将 Xmx 设置为 1014 MB - 但文件甚至可能更大)。
我的问题是:有没有办法通过 HttpInvoker 或其他方式进行流式处理来解决这个问题?
我已经使用 Spring Remoting over HttpInvoker 开发了一个客户端(Eclipse)服务器(Tomcat 上的 Spring Framework)应用程序。
一些用例需要将大文件 (>150MB) 从服务器传输到客户端。由于我们在客户端使用 32 位系统,我总是遇到 Java 堆大小问题(尽管我将 Xmx 设置为 1014 MB - 但文件甚至可能更大)。
我的问题是:有没有办法通过 HttpInvoker 或其他方式进行流式处理来解决这个问题?
见 rmiio : RMIIO
RMIIO 是一个库,它使使用 RMI 框架(或与此相关的任何 RPC 框架)流式传输大量数据变得尽可能简单。谁需要这个?好吧,如果您曾经需要将文件从 RMI 客户端发送到 RMI 服务器,那么您就遇到了这个问题。而且,如果您确实设法实现了一个基本解决方案,那么当有人第一次尝试发送 2GB 文件时,它可能会引发 OutOfMemoryError。由于 RMI 的设计,这个常见且看似简单的问题实际上很难以高效且稳健的方式解决。
您可以单独使用它,也可以在任何其他 rmi 框架(例如 httpInvoker)上使用它。