如何使用grails中的wslite插件在使用soap服务时通过方法传递参数

时间:2013-11-07 07:52:49

标签: web-services grails soap cxf

我使用grails wslite插件来使用soap web服务,如果未指定参数,我可以从body部分调用service方法,即可从该服务方法获取结果。但我试图传递参数即时收到错误

soap:Client - Unmarshalling Error:意外元素(uri:“htp:// soapauth /”,local:“parameters”)。预期元素为< {} count>,< {} status>

我这样的肥皂服务方法,我使用grails cxf插件将其作为服务公开  @WebMethod(operationName =“getReqMethod”,action =“getReqMethod”)

String getReqMethod(  
    @WebParam( name="count") Integer count, @WebParam(name="status") String status ){ 
    print " in service "+count+" -- "+status

}

我控制器中的wslite客户端代码如下。

 def index(){
    withSoap(serviceURL: 'http://mysite.com/SoapAuth/services/sampleReq') {
          def response = send(SOAPAction: "getReqMethod") {
               header() {
                   auth {
                      username("wsuser")
                     password("secret")                        
                }                  
            }
            body{
                getReqMethod("xmlns": 'htp://soapauth/')
                {
                    parameters{
                        count(2)
                        status("active")
                    } 
                }
            }
        }
        println "res "+response.getReqMethodResponse.text()
    }

1 个答案:

答案 0 :(得分:0)

不应该只是这而不是parameters关闭吗?

getReqMethod("xmlns": 'http://soapauth/') {
    count(2)
    status("active")
}