我们正在使用Java(jaxws)的Exchange Web服务。这是问题。要获取附件,请执行GetAttachment soap调用(逻辑上足够:))。这是问题所在:整个附件都返回到base64数据包中(无法访问附件大小),该数据包与其他信息一起藏在soap响应的内部。结果,整个附件内容被缓冲到内存中。使用潜在的2GB附件,可以使整个Java客户端耗尽内存。
似乎没有办法从EWS获得附件。似乎不支持MTOM等。简而言之,EWS中似乎没有关于流式传输的规定。
解决这种情况的唯一方法似乎是非常低级的代理来拦截这些调用,并将内容流式传输到磁盘,并用“标记标志”替换它到磁盘上的文件。但是似乎没有优雅的方法可以做到这一点?
有任何想法吗
最佳答案
不幸的是,没有,无法将内容直接流式传输到磁盘。
关于java - Exchange Web Services GetAttachment将不会流式传输到磁盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4158022/