从Web服务返回大块二进制数据的最佳方法是什么?

ftl*_*ftl 7 java axis2 web-services

我正在实现一个返回二进制文件内容的web服务.文件大约100MB.Web服务和客户端基于Axis2构建.

返回数据的方法的返回类型的最佳好处是什么?

我尝试了byte [],但我总是在服务器端获得OutOfMemoryErrors.另外,我不太乐意将整个文件内容保存在内存中.有什么相似的东西,我可以使用吗?

Pie*_*rre 7

您是否可以返回指向保存为临时文件的大结果的临时URL,而不是返回数据?或者您可以将文件作为一系列较小的结果返回吗?


ftl*_*ftl 3

“使用 Axis2 和带有附件的 SOAP 从 Web 服务下载二进制文件”一文准确描述了我正在寻找的解决方案。使用“带有附件的 SOAP”(SwA) 将大数据块作为附件添加到 Web 服务的 SOAP 响应中。

我可以使用提供输入流的 javax.activation.DataSource,并且不必将整个文件保存在内存中。