grails – GroovyWS和复杂的请求
发布时间:2020-12-14 16:36:32 所属栏目:大数据 来源:网络整理
导读:我遇到了使用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 !--Option
我遇到了使用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服务调用所需的每个参数类型动态创建类.例如,如果webservice调用是:
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认为类名实际应该是什么. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |