java - Spring ws : how to access to the size of an AxiomAttachment

标签 java spring-ws

为了获取附件,我在端点中有以下代码:

@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/

相关文章:

java - Maven 插件与最新版本的 Java 的兼容性错误

java - 老板。如何确定一段时间内的并发用户数?

spring - 无法让 Spring SOAP 客户端工作 : content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'

java - 在 Spring WS 中返回带有自定义错误代码和消息的 SOAP 错误对象

java - 两个未排序的列表交集作为列表返回

java - 是否可以在不复制 Set 的情况下序列化 Map.keySet ?

java - 如何在没有 IDE 的情况下编译 Java 代码?

java - Spring WS WSDL自动暴露: xsd import are not followed

java - 仍然无法从端点访问 SoapHeader

java - Spring WS 服务不通过 SOAPUI 响应任何请求