2009-12-03 1 views
4

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

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

Optimizing Binary Data Transmission Using MTOM/XOP

+0

любая удача с этим? Я также все еще борется с этим ... –

ответ

5

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

После этой конфигурации и Axiom классы, доступной в пути к классам, Spring-WS автоматически использует временные файлы для поросят обратно большие загрузок документов.

+0

Я использовал Axis2 1.5.1 для решения моей проблемы на стороне клиента. Я считаю, что он использует аксиому. –

+0

Какая оптимальная комбинация/подход для загрузки больших файлов с использованием MTOM и Spring и websphere? SAAJ или AXIOM или JAX-WS или CXF или http-клиент? или есть ли другие лучше? Лучше с точки зрения производительности, использования памяти, времени, затраченного на загрузку. @DanPolites – AJJ