我有一个能够接收二进制数据 [文件] 的 servlet。
我想使用 Spring 的 RestTemplate() 将一个大的二进制文件上传到 servlet。但是,不可能将二进制文件完全加载到内存中。
到目前为止,我的尝试导致 OutOfMemory 错误,表明这些方法一直在尝试将整个文件加载到内存中。
如何将此二进制数据流式传输到 servlet?在 Spring 或 Java 中更可取。
我有一个能够接收二进制数据 [文件] 的 servlet。
我想使用 Spring 的 RestTemplate() 将一个大的二进制文件上传到 servlet。但是,不可能将二进制文件完全加载到内存中。
到目前为止,我的尝试导致 OutOfMemory 错误,表明这些方法一直在尝试将整个文件加载到内存中。
如何将此二进制数据流式传输到 servlet?在 Spring 或 Java 中更可取。
找到了答案:
https://jira.springsource.org/browse/SPR-7909
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setBufferRequestBody(false);
RestTemplate rest = new RestTemplate(requestFactory);
这可以防止将整个请求加载到内存中。