0

我正在构建两个相互交互的应用程序。一种是在 Windows 或 Unix 机器上运行的 Web 服务,它具有可用于对文件执行各种操作的方法。另一个是 Web 服务器,为用户提供与服务交互的接口。一项要求是能够上传和下载大于 100MB 的文件(但也可以是任何大小)。我一直在尝试通过将文件的字节放入 SOAP 请求中来使其工作,就像我对所有其他服务所做的那样,但是我不断收到较大文件的 OutOfMemory 错误。我尝试使用启用了 MTOM 的 Axiom 和 JAXB 来尝试流式传输字节,但使用 Spring MTOM 示例(尤其是这部分),看来您必须真正进入一些讨厌的代码才能使其正常工作。使用 Spring 在两台服务器之间发送大文件是否有更明显和简单的选择?

作为一个附带问题,是否有一种更简单的方法可以将使用 JAXB 创建的文件上传请求对象发送到您不必像上面的 MTOM 示例中那样编写那么多代码的地方?像这样简单的东西:

StoreFileRequest request = new StoreFileRequest();
request.setDestination(destination);
request.setFileData(dataHandler);
getWebServiceTemplate().marshalSendAndReceive(request)

感谢您的任何想法!

4

1 回答 1

0

使用 apache fileupload 甚至 Spring 网站链接到它

<form method="POST" enctype="multipart/form-data" action="fup.cgi">
  File to upload: <input type="file" name="upfile"><br/>
  Notes about the file: <input type="text" name="note"><br/>
  <br/>
  <input type="submit" value="Press"> to upload the file!
</form>

注意:每个浏览器都有自己的最大尺寸:看看下面的第一个链接。

http://www.motobit.com/help/scputl/pa98.htm

http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch16s08.html

http://commons.apache.org/proper/commons-fileupload/

于 2013-06-10T20:10:53.130 回答