Поток веб-сервисы MTOM в платформе веб-сервисов Spring

Я хотел бы отправить большие файлы от сервера до клиента, использующего MTOM и Spring WS. Я понимаю, что это не лучший подход для этого типа вещи, но это - требование. У меня есть настроенный MTOM, и он работает отлично для маленьких файлов приблизительно 50 МБ. Я испытываю из ошибок памяти для больших файлов и путем изменения различных размеров пространства "кучи", я могу отправить немного большие файлы, но ничто близко к 1 ГБ. 1 ГБ является моим тестовым сценарием для этого. Как я могу передать потоком или разделить сервис MTOM на блоки от сервера до клиента? Я использую обновление Java 6 17, Tomcat 6 и Spring WS 1.5.7 с SaajSoapMessageFactory.

Я нашел пример потоковой передачи с jax-ws, но я не уверен, как включить это в Spring конечная точка WS.

Оптимизация передачи двоичных данных Используя MTOM/XOP

5
задан Dan Polites 3 December 2009 в 20:58
поделиться

1 ответ

Вчера у меня возникла та же проблема с загрузкой больших файлов. Наконец я смог найти решение для этого. Spring WS имеет настраиваемую фабрику сообщений Axiom под названием org.springframework.ws.soap.axiom.AxiomSoapMessageFactory , которая может использовать файл вместо памяти при загрузке больших файлов. Единственное изменение, которое нужно сделать в вашей конфигурации, - это определить 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 автоматически использует временные файлы для копирования больших загрузок документов.

5
ответ дан 14 December 2019 в 19:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: