Анализ SOAP-запроса, отправленного из SOAPUI - с использованием сервлета Axis2

Вот SOAP-запрос, который я отправляю с использованием SOAPUI

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:My namespace="My Package">
   <soapenv:Header>
    <Username>q</Username>
    <Password>q</Password>
   </soapenv:Header>
   <soapenv:Body>
      <Op:Op>
         <Op:int>2134</Op:int>
      </Op:Op>
   </soapenv:Body>
</soapenv:Envelope>

Теперь я создал проект maven в eclipse и сгенерировал файл wsdl, файл aar (для развертывания с использованием Tomcat 7) и файл jar из кода Java (java2wsdl). Когда запрос отправлен, код должен авторизовать пользователя с учетными данными, указанными в элементе заголовка. Однако я не могу разобрать запрос SOAP. Когда я попытался разобрать,

SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
SOAPEnvelope envelope = fac.getDefaultEnvelope();
SOAPHeader header = envelope.getHeader();
SOAPBody body = envelope.getBody();
Iterator it = header.getChildElements();
Iterator bodyIt = body.getChildElements();
while (it.hasNext()) {
    OMElement e = (OMElement) it.next();
    System.out.println(e.getText().toString());
}
while (bodyIt.hasNext()) {
    OMElement e = (OMElement) bodyIt.next();
    System.out.println(e.getText().toString());
}

посредством чего SOAPFactory и другие объекты импортируются из аксиомы, ни один из операторов печати не выполнялся. Итак, вопрос в том, как мне разобрать этот запрос, чтобы у меня была возможность прочитать заголовок и тело?

Я прошу прощения, если что-то расплывчато; Я все еще новичок в веб-сервисах Java.

1 ответ

От Javadoc SOAPFactory#getDefaultEnvelope() метод:

Создайте конверт SOAP по умолчанию с пустым заголовком и пустым телом.

Таким образом, ваш Java-код ведет себя как ожидалось.

Другие вопросы по тегам