我正在构建两个相互交互的应用程序。一种是在 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)
感谢您的任何想法!