如何使用Spring-ws对SOAP主体中的部件列表进行编组

oth*_*aul 5 java soap spring-ws jaxb

我必须用Java编写SOAP Web服务的客户端.最初我在wsdl上使用wsimport来生成代理类,一切都很顺利.但是,如果wsdl中有类似添加的更改,那么我的代理类崩溃了.

所以我尝试切换到不需要预编译存根的spring-ws.

soap请求应如下所示:

<soapenv:Body>
  <ws:command>
     <requestName>?</requestName>
     <paramCount>?</paramCount>
     <paramList>
        <item>?</item>
     </paramList>
  </ws:command>
</soapenv:Body>
Run Code Online (Sandbox Code Playgroud)

我正在使用WebServiceTemplate发出请求:

import org.springframework.ws.client.core.WebServiceTemplate;
webServiceTemplate.marshalSendAndReceive(url, request);
Run Code Online (Sandbox Code Playgroud)

这是问题所在.我如何设法告诉spring-ws(或者我猜marshaller)我只想要一个没有任何包装的元素列表通过传递单个对象添加到soap体中?

编辑: 正文和命令在wsdl中指定,我无法控制它们.我所拥有的是参数列表:requestName,paramCount ..这个参数列表没有包含在像commandParams这样的元素中,但我必须将一个参数传递给marshalSendAndReceive()方法.如果我传递一个包装元素,那么该元素被序列化到正文中也违反了webservice契约.