为了获取附件,我在端点中有以下代码:
@PayloadRoot(localPart = REQUEST_ELEMENT, namespace = MODELES_V1_0_URI)
@ResponsePayload
public Source saveFile(MessageContext argo) throws Exception {
(AxiomSoapMessage)MessageContextHolder.getMessageContext().getRequest();
AxiomSoapMessage request = (AxiomSoapMessage)argo.getRequest();
Attachment attachement= request.getAttachments().next();
但是附件实现了 AxiomAttachment(我正在使用 AxiomSoapMessageFactory),并且根据此类“Axiom 不支持获取附件的大小。”。
如何获取附件的大小?
我尝试使用它,以便能够将大文件(超过 10 个月)作为附件发送,以防止内存不足(任何更好的想法将不胜感激 - 我已经尝试过 mtom spring 示例,但它不起作用即使通过指定 AxiomSoapMessageFactory 也可以处理大量文件(也有 outOfMemory)。
我愿意接受任何更好的解决方案(spring ws mtom 示例不起作用..)来使用 spring ws 处理大文件
最佳答案
在从 DataHandler 保存文件之前,实际上不可能获取文件的大小。想一想。 MTOM 是一种将二进制文件流式传输到 Web 服务的技术。您问的问题类似于“这个电话要持续多久?”在挂断电话之前,您无法确定。
关于java - Spring ws : how to access to the size of an AxiomAttachment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3599091/