проблема пространства имен в веб-сервисе с Apache CXF
Я использую Apache CXF 2.7.3 и сталкиваюсь с проблемой пространства имен, которую я действительно не понимаю. Я много пытался найти это, но большинство результатов, которые я нахожу, касается различного поведения. Проблема заключается в том, что при вызове веб-службы произойдет сбой, если элемент параметра квалифицирован как пространство имен. Все остальные элементы в сообщении являются квалифицированными, и он принимает это, но не элемент параметра. Вот точное поведение:
запросБЕЗ квалифицированный элемент параметра:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ord="http://www.example.org/order">
<soapenv:Header/>
<soapenv:Body>
<ord:getOrder>
<id>a</id>
</ord:getOrder>
</soapenv:Body>
</soapenv:Envelope>
результаты в успехе:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:getOrderResponse xmlns:ns2="http://www.example.org/order">
<return>
<ns2:errorCode/>
<ns2:errorMessage/>
<ns2:order>
<ns2:orderNumber>ABC123</ns2:orderNumber>
<ns2:lastName>Smith</ns2:lastName>
</ns2:order>
</return>
</ns2:getOrderResponse>
</soap:Body>
</soap:Envelope>
запросС УЧАСТИЕМ параметр квалифицирован:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ord="http://www.example.org/order">
<soapenv:Header/>
<soapenv:Body>
<ord:getOrder>
<ord:id>a</ord:id>
</ord:getOrder>
</soapenv:Body>
</soapenv:Envelope>
результаты в исключении из JAXB:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Unmarshalling Error: unexpected element (uri:"http://www.example.org/order", local:"id"). Expected elements are <{}id></faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Во всех исследованиях, которые я проводил, это обычно означает, что пространство имен где-то не совпадает. Но я проверил это полностью, и пространство имен везде одинаково, включая ObjectFactory.class, package-info.class и файл конфигурации cxf-servlet.xml, а также аннотацию @WebService. Кто-нибудь может указать мне правильное направление относительно того, что мне здесь не хватает?