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

时间:2018-06-05 14:18:19

标签: java soap jaxb spring-ws

我必须用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>

我正在使用WebServiceTemplate发出请求:

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

以下是问题。我如何设法告诉spring-ws(或者我猜marshaller)我只想要一个没有任何包装器的元素列表添加到soap body中传递一个对象?

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

0 个答案:

没有答案