我正在实现一个返回二进制文件内容的web服务。这些文件大约100MB。 Web服务和客户端是基于Axis2构建的。从webservice返回大块二进制数据的最佳方式是什么?
什么是返回数据的方法的返回类型的最佳连接?
我试过了byte [],但是我总是在服务器端得到OutOfMemoryErrors。另外,我不太乐意在内存中存储整个文件内容。有什么可以用来替代我的东西吗?
我正在实现一个返回二进制文件内容的web服务。这些文件大约100MB。 Web服务和客户端是基于Axis2构建的。从webservice返回大块二进制数据的最佳方式是什么?
什么是返回数据的方法的返回类型的最佳连接?
我试过了byte [],但是我总是在服务器端得到OutOfMemoryErrors。另外,我不太乐意在内存中存储整个文件内容。有什么可以用来替代我的东西吗?
文章"Downloading a Binary File from a Web Service using Axis2 and SOAP with Attachments"描述了我正在寻找的解决方案。使用“带附件的SOAP”(SwA)将大块数据作为附件添加到webservice的SOAP响应中。
我可以使用提供InputStream的javax.activation.DataSource,而不必将整个文件放在内存中。
而不是返回数据,你可以返回一个临时的URL指向这个大的结果保存为临时文件吗? 或者你可以将你的文件作为一系列较小的结果返回吗?