gpt4 book ai didi

grails - GroovyWS 和复杂请求

转载 作者:行者123 更新时间:2023-12-04 05:59:11 26 4
gpt4 key购买 nike

我遇到了使用 GroovyWS 发送复杂请求的问题。

这是由soapUI 生成的示例请求:

<soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dex="http://www.temp.com/com/dex"
>
<soapenv:Header/>
<soapenv:Body>
<dex:executeRequest>
<!--Optional:-->
<a>?</a>
<!--Optional:-->
<b>?</b>
<!--Optional:-->
<parameters>
<!--Zero or more repetitions:-->
<parameter>
<!--Optional:-->
<key>?</key>
<!--Optional:-->
<value>?</value>
</parameter>
</parameters>
<!--Optional:-->
<c>?</c>
<!--Optional:-->
<d>?</d>
</dex:feedrequest>
</soapenv:Body>
</soapenv:Envelope>

一段常规代码:
def proxy = webService.getClient(grailsApplication.config.ws.endpoint);
proxy.processdRequest(?);

所以我应该通过什么而不是 ? .

谢谢你的帮助。

-vova。

最佳答案

GroovyWS 为您需要的每个参数类型动态创建类,以便将数据传递给 Web 服务调用。例如,如果网络服务调用是:

public int passSomeArgs( Arg1Type a, Arg2Type b );

GroovyWS 将动态创建一个 Arg1Type 类和一个 Arg2Type 类,您可以通过代理上的方法访问它们。
// this will instantiate an Arg1Type for you
def arg1 = proxy.create( "ns1.ns2.Arg1Type" );
// this will instantiate an Arg2Type for you
def arg2 = proxy.create( "ns1.ns2.Arg2Type" );

然后,您可以使用数据填充 arg1/arg2 实例并进行调用:
int ret = proxy.passSomeArgs( arg1, arg2 );

请注意,正在创建的类中可能涉及一些命名空间。我使用在 GroovyWS 处理 WSDL 时打印的 CXF 日志来查看 CXF 认为类名实际上应该是什么。

关于grails - GroovyWS 和复杂请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3317453/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com