gpt4 book ai didi

java - 在 Spring Web 服务框架中流式传输 MTOM Web 服务

转载 作者:搜寻专家 更新时间:2023-10-31 20:07:39 25 4
gpt4 key购买 nike

我想使用 MTOM 和 Spring WS 将大文件从服务器发送到客户端。我意识到这不是解决此类问题的最佳方法,但这是一项要求。我设置了 MTOM,它非常适合 50mb 左右的小文件。我遇到较大文件的内存不足错误,通过更改不同的堆空间大小,我可以发送稍大的文件,但不会接近 1gb。 1GB 是我的测试用例。如何将 MTOM 服务从服务器流式传输或分块到客户端?我正在使用 Java 6 update 17、Tomcat 6 和 Spring WS 1.5.7 以及 SaajSoapMessageFactory。

我找到了一个使用 jax-ws 进行流式传输的示例,但我不确定如何将其合并到 Spring WS 端点中。

Optimizing Binary Data Transmission Using MTOM/XOP

最佳答案

昨天,我在上传大文件时遇到了同样的问题。最后我找到了解决方案。 Spring WS 有一个名为 org.springframework.ws.soap.axiom.AxiomSoapMessageFactory 的自定义 Axiom 消息工厂,它可以在上传大文件时使用文件而不是内存。在您的配置中要做的唯一更改是使用您的自定义属性定义 bean。

<bean id="messageFactory" class="org.springframework.ws.soap.axiom.AxiomSoapMessageFactory">
<property name="payloadCaching" value="false" />
<property name="attachmentCaching" value="true" />
<property name="attachmentCacheThreshold" value="1024"/>
</bean>

一旦您在类路径中拥有此配置和可用的 Axiom 类,Spring-ws 会自动使用临时文件来搭载大型文档上传。

关于java - 在 Spring Web 服务框架中流式传输 MTOM Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1842843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com