Я должен написать клиент для веб-службы 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() метод.Если я передаю элемент-оболочку, этот элемент сериализуется в теле, что также нарушает контракт веб-службы.