7

我正在实现一个返回二进制文件内容的网络服务。这些文件大约有 100MB 大。Web 服务和客户端建立在 Axis2 之上。

返回数据的方法的返回类型的最佳选择是什么?

我试过 byte[],但我总是在服务器端得到 OutOfMemoryErrors。另外,我不太高兴将整个文件内容保存在内存中。我可以使用类似流的东西吗?

4

2 回答 2

7

除了返回数据,你能返回一个临时 URL 指向这个保存为临时文件的大结果吗?或者您可以将您的文件作为一系列较小的结果返回吗?

于 2009-10-01T12:32:02.713 回答
3

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

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

于 2009-10-02T07:40:21.797 回答