我想从服务器发送大文件使用MTOM和Spring WS客户端。我知道这是不是这种类型的事情最好的办法,但它是一个必要条件。我有MTOM设置和它周边的50MB小文件的伟大工程。我遇到了较大的文件的内存不足的错误,并通过改变不同的堆空间的大小,我可以关闭发送稍大的文件,但没有到1GB。 1GB的是我测试的情况下这一点。如何流或数据块从服务器到客户端的MTOM服务?我使用的Java 6更新17,Tomcat的6和Spring WS 1.5.7与SaajSoapMessageFactory。

我发现JAX-WS流的例子,但我不知道如何将其纳入一个Spring WS端点这一点。

优化二进制数据传输使用MTOM / XOP

有帮助吗?

解决方案

昨天,我有上传大文件同样的问题。最后,我能找到的解决方案。春天WS有一个自定义的公理消息工厂称为org.springframework.ws.soap.axiom.AxiomSoapMessageFactory可以在上传大文件在内存中使用,而不是文件。在配置中做的唯一的变化是与自定义属性定义的豆。

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

一旦你在类路径这种配置和公理班,春-WS自动使用临时文件上捎带大文件上传。

scroll top