Re[2]: Spring-ws + axis
От: sa25  
Дата: 20.08.15 08:02
Оценка:
Здравствуйте, tavr, Вы писали:

T>Вы уперлись в ограничения, которые в первую очередь связаны с использованием SOAP.

T>Я бы задумался о переезде на бинарный формат.
T>Пересылка больших вложений также подразумевает другой механизм, переход на потоковую и асинхронную модель закачки-докачки-валидации.

Увы, но необходимо использовать именно SOAP.

Пытаюсь все-таки реализовать работу с MTOM. Нашел топик
Добавил флаг <property name="mtomEnabled" value="true"/> в маршаллер:

<bean id="smevMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
    <property name="contextPath" value="smev.ws.beans"/>
    <property name="mtomEnabled" value="true"/>
</bean>

<sws:annotation-driven marshaller="smevMarshaller" unmarshaller="smevMarshaller"/>

В SoapUI настроил передачу через MTOM, кинул себе запрос, вот фрагмент:

<rev:AppDocument>               
    <rev:RequestCode>req_6d423abf-2fbc-418e-971c-2de10288533f</rev:RequestCode> 
    <rev:BinaryData><inc:Include href="cid:req_6d423abf-2fbc-418e-971c-2de10288533f.zip" xmlns:inc="http://www.w3.org/2004/08/xop/include"/></rev:BinaryData>
</rev:AppDocument>


Вот класс:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AppDocumentType", namespace = "http://smev.gosuslugi.ru/rev120315", propOrder = {
    "requestCode",
    "binaryData"
})
public class AppDocumentType {

    @XmlElementRef(name = "RequestCode", namespace = "http://smev.gosuslugi.ru/rev120315", type = JAXBElement.class)
    protected JAXBElement<String> requestCode;
    @XmlElementRef(name = "BinaryData", namespace = "http://smev.gosuslugi.ru/rev120315", type = JAXBElement.class)
    protected JAXBElement<byte[]> binaryData;
...
}


Однако после анмаршаллинга поле binaryData пустое. Что я делаю не так?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.