2014-04-25 4 views
1

Я хочу вызвать внешний веб-сервис SOAP с помощью JaxWS. JaxWS отправляет запрос в формеПеремещение объявления пространства имен в корневой элемент при использовании JaxWS

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <messageRootElement xmlns="some.ns"> 
     <sampleChild>Content</sampleChild> 
    </messageRootElement> 
    </soap:Body> 
</soap:Envelope> 

Вызов службы макетной настройки в SoapUI работает нормально. Фактически внешний веб-сервис якобы не работает с этим форматом (у меня нет доступа к системе с внешним веб-сервисом для разработки).

внешний веб-сервис, кажется, работает с запросом формы

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sns="some.ns"> 
    <soap:Body> 
    <sns:messageRootElement> 
     <sns:sampleChild>Content</sns:sampleChild> 
    </sns:messageRootElement> 
    </soap:Body> 
</soap:Envelope> 

, который, как SoapUI генерирует запрос выборки из WSDL о котором идет речь, а также.

Мой вопрос: как я могу сообщить JaxWS о его запросе в последней форме? Я полагаю, что оба действия действительны в соответствии с некоторыми стандартами, но я не имею ни малейшего понятия, на какой технологии основан внешний веб-сервис, и насколько он соответствует соответствующим стандартам.

Объясняя мне, что изменить поведение JaxWS таким образом (если это так), было бы полезным ответом.

ответ

1

Вам необходимо изменить файл package-info.java, который сгенерирован как часть объектов, необходимых для вызова веб-службы. Измените файл следующим образом:

@javax.xml.bind.annotation.XmlSchema(
    namespace = "some.ns", 
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, 
    xmlns = { 
     @javax.xml.bind.annotation.XmlNs(
      prefix = "sns", 
      namespaceURI = "some.ns") 
    }) 

package some.ns; 
+0

Это почти доставляет меня в нужное состояние. Префикс пространства имен «sns» определен в 'messageRootElement'. Кажется, что внешняя система счастлива, так что это достаточно хорошо :) –

Смежные вопросы