Soap 如何使用GroovyWS发送复杂对象的数组

Soap 如何使用GroovyWS发送复杂对象的数组,soap,groovy,groovyws,Soap,Groovy,Groovyws,我将调用一个在C#中创建的Web服务,它接受一个参数 KmlSystemVariable[]系统变量 如何使用GroovyWS传递这样的参数?它不需要有任何值,可以是空数组。 看起来完整的类名是Consorte.Pulse.Data.KmlSystemVariable 我按照中所述启用了日志记录以获取KmlSystemVariable的命名空间,看起来我可以通过以下方式创建KmlSystemVariable: proxy.create("org.datacontract.schemas._200

我将调用一个在C#中创建的Web服务,它接受一个参数

KmlSystemVariable[]系统变量

如何使用GroovyWS传递这样的参数?它不需要有任何值,可以是空数组。 看起来完整的类名是Consorte.Pulse.Data.KmlSystemVariable

我按照中所述启用了日志记录以获取KmlSystemVariable的命名空间,看起来我可以通过以下方式创建KmlSystemVariable:

proxy.create("org.datacontract.schemas._2004._07.consorte_pulse.KmlSystemVariable")

但是如何创建KmlSystemVariable数组呢?

只要将代理对象包装到Groovy列表中并将其用作参数就足够了。GroovyWS将在幕后为您完成从列表到SOAP数组的转换

例如:

def ksv1 = proxy.create("org.datacontract.schemas._2004._07.consorte_pulse.KmlSystemVariable")
def ksv2 = ...
def ksv3 = ...
def list = [ksv1, ksv2, ksv3]
proxy.<some ws method>(list)
def ksv1=proxy.create(“org.datacontract.schemas.\u 2004.\u 07.consorte\u pulse.KmlSystemVariable”)
def ksv2=。。。
def ksv3=。。。
def列表=[ksv1、ksv2、ksv3]
代理(名单)

谢谢xlson,我度假回来后会试试。不幸的是,我得到了javax.xml.bind.JAXBException:class java.util.ArrayList,它的任何超类都不为本文所知。这很奇怪,我几乎可以肯定我们在工作中会这样做。我周四回来时会检查一下。这似乎有效:def sysvar=webService.create(“org.datacontract.schemas.\u 2004.\u 07.consorte\u pulse.KmlSystemVariable”)sysvar.name=“foo”sysvar.value=“bar”def sysvars=webService.create(“org.datacontract.schemas.\u 2004.\u 07.consorte\u pulse.ArrayOfKmlSystemVariable”)sysvars.kmlSystemVariables抱歉,无法确定如何在注释中格式化代码,甚至无法添加换行符