1

この投稿の XML バージョンを使用する場合は機能しますが、インライン バージョンが機能しない理由を突き止めるために私の髪を引き裂きます。その複雑な機能はほとんどありません!!

import wslite.soap.SOAPClient
import wslite.soap.*
import groovy.xml.Namespace

proxy = new SOAPClient("http://www.predic8.com:8080/crm/CustomerService?wsdl")

/*
// THIS WORKS
list = proxy.send(
'''<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:ns="http://predic8.com/wsdl/crm/CRMService/1/">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:get>
     <id>99</id>
    </ns:get>
 </soapenv:Body>
  </soapenv:Envelope>'''
  )
    */

   //return list.getText()

//THIS DOES NOT
list = proxy.send(SOAPAction:'http://www.predic8.com:8080/crm/CustomerService'){
body{
    get(xmlns:ns="http://predic8.com/wsdl/crm/CRMService/1/"){
        id(99)
        }
} //end body
} //end proxy

return list.getText()

理由を理解できる人はいますか?

4

1 に答える 1

2

属性は Map として渡す必要があるため、コードに対する次の変更が機能するはずです。

...
'ns:get'('xmlns:ns': "http://predic8.com/wsdl/crm/CRMService/1/"){
...

また

...
get('xmlns': "http://predic8.com/wsdl/crm/CRMService/1/"){
...
于 2013-07-18T16:39:53.703 に答える