繁体   English   中英

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

[英]What is the best way to return big chunks of binary data from a webservice?

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

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

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

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

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

我可以使用提供InputStream的javax.activation.DataSource,而不必将整个文件保存在内存中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM