У меня есть SOAP-запрос этой формы:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:myqname="http://example.com/hello"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<myqname:MyRequest xmlns:myqname="http://example.com/hello">
...
</myqname:MyRequest>
</soapenv:Body>
</soapenv:Envelope>
Если я попрошу SOAPUI «отформатировать XML» этот запрос,
удаляет второе объявление myqname, поэтому я получаю следующее:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:myqname="http://example.com/hello"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<myqname:MyRequest>
...
</myqname:MyRequest>
</soapenv:Body>
</soapenv:Envelope>
Оригинальный запрос работает нормально,
но серверы приложений не работают с измененным запросом с этой ошибкой:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: UndeclaredPrefix: Cannot resolve 'myqname:MyRequest' as a QName: the prefix 'myqname' is not declared.</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Согласно спецификации веб-сервисов,
Обязательно ли повторное объявление qname внутри узла soapenv: Body?
Это ошибка SOAPUI или ошибка сервера приложений? или недоразумение с моей стороны?
SOAPUI 4.0.1, версия сервера WebLogic: 10.3.2.0
Edit: ups, даже если я использовал сервер приложений WebLogic, я использовал платформу веб-сервисов CXF. Я разместил проблему там. issues.apache.org/jira/browse/CXF-4026
Итак: SOAPUI 4.0.1, CXF 2.5.0