Как составить список частей в теле SOAP с помощью Spring-ws - PullRequest
0 голосов
/ 05 июня 2018

Я должен написать клиент для веб-службы SOAP на Java.Первоначально я использовал wsimport на wsdl для генерации прокси-классов, и все было хорошо.Однако, если в дополнениях, подобных wsdl, произошли изменения, произошел сбой моих прокси-классов.

Поэтому я попытался переключиться на spring-ws, для которого не требуются предварительно скомпилированные заглушки.

Запрос мыла должен выглядеть следующим образом:

<soapenv:Body>
  <ws:command>
     <requestName>?</requestName>
     <paramCount>?</paramCount>
     <paramList>
        <item>?</item>
     </paramList>
  </ws:command>
</soapenv:Body>

и я использую WebServiceTemplate для отправки запроса:

import org.springframework.ws.client.core.WebServiceTemplate;
webServiceTemplate.marshalSendAndReceive(url, request);

Вот вопрос. Как мне удается сказать spring-ws(или, я думаю, маршаллер), что я просто хочу, чтобы список элементов без какой-либо обертки был добавлен к телу мыла путем передачи одного объекта?

РЕДАКТИРОВАТЬ: Тело и командауказано в WSDL, и я не могу их контролировать.У меня есть список параметров: requestName, paramCount. Этот список параметров не заключен в такой элемент, как commandParams , но мне нужно передать единственный параметр в marshalSendAndReceive() метод.Если я передаю элемент-оболочку, этот элемент сериализуется в теле, что также нарушает контракт веб-службы.

...