Анализ 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-код ведет себя как ожидалось.