Ожидаемое событие персонажа - парсер MTOM - PullRequest
0 голосов
/ 18 декабря 2018

С использованием 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.

...