С использованием Axis 1.6 и SOAP я внедряю сервер веб-службы, который принимает zip-файлы и сохраняет их в базе данных.В качестве клиента для тестирования моего софта я использую проект soapUI.
У меня есть следующий фрагмент мыльного конверта с запросом:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://xml.company.com/common" xmlns:nms="http://xml.company.com/schem" xmlns:xm="http://www.w3.org/2005/05/xmlmime">
<soapenv:Body>
<nms:executeRepo><com:location>
<com:space>dokumentsinput</com:space></com:location>
<nms:payload>
<nms:datastream id="1">
<nms:stream contentType=""><xop:Include href="cid:document.zip" xmlns:xop="http://www.w3.org/2004/08/xop/include"/></nms:stream>
</nms:datastream>
</nms:payload>
</nms:executeRepo>
</soapenv:Body>
</soapenv:Envelope>
Проблема в том, что когда я НЕ ставлю пробел или не вводлю между элементами <nms:executeRepo>
и <com:location>
(какв фрагменте) я получаю следующую ошибку: javax.xml.stream.XMLStreamException: ожидаемое событие CHARACTER
Проблема решается, когда я ставлю пробел / ввод или когда я полностью удаляю элемент datastream
.Почему пробел / ввод между <nms:executeRepo>
и <com:location>
требуется, когда я пытаюсь прикрепить xop: Include?Я обнаружил, что когда используется xop: Include, ось использует MTOMStaXSoapModelBuilder.Без xop: Включить StAXSOAPModelBuilder используется.Почему у MTOM Builder возникает проблема, когда между этими двумя элементами нет пробела / ввода?
У меня есть еще один вопрос.При использовании элемента <xop:Include .../>
разрешается ли размещать вокруг него какой-либо белый знак?Я также получаю сообщение об ошибке при попытке вставить пробел между элементами stream и xop: Include.