我正確有一個問題與Axis2上運行的SOAP API接口:命名空間中SOAPpy的工作不正常
會發生什麼事是我應該調用登錄方法有兩個參數(登錄名和密碼),它返回一個認證令牌,我將用於後續的交互。
#!/usr/bin/python
from SOAPpy import SOAPProxy
s_user = 'Administrator'
s_pass = 'securityThroughObscurity'
s_host = '192.168.76.130:8998'
namespace = 'http://bcc.inc.com/IncSecurity'
url = 'http://' + s_host + '/axis2/services/IncSecurityService'
DHCPServ = SOAPProxy(url, namespace)
DHCPServ.config.dumpSOAPOut = 1
DHCPServ.config.dumpSOAPIn = 1
DHCPResp = DHCPServ.login(loginName=s_user, password=s_pass)
另一端的Axis2服務器返回一個XML錯誤,聲明Data element of the OM Node is NULL
。縱觀Axis2的日誌,我看到的錯誤是adb_login.c(383) non nillable or minOuccrs != 0 element loginName missing
我再包捕獲從已知的工作Java客戶端與此客戶端的XML的login
XML和這兩者之間的區別:
SOAPpy的:
<ns1:login xmlns:ns1="http://bcc.inc.com/IncSecurity" SOAP-ENC:root="1">
<password xsi:type="xsd:string">securityThroughObscurity</password>
<loginName xsi:type="xsd:string">Administrator</loginName>
</ns1:login>
的Java:
<ns2:login xmlns:ns2="http://bcc.inc.com/IncSecurity">
<ns2:loginName>Administrator</ns2:loginName>
<ns2:password>securityThroughObscurity</ns2:password>
</ns2:login>
因此,這意味着,由於某種原因(可能涉及到我缺乏千牛在Python和SOAPpy中的owledge)名稱空間不適用於login
方法中使用的變量,所以通過所有帳戶它們實際上不存在,並且錯誤是有保證的。
此外,它似乎是翻轉周圍的變量,並將loginName之前的密碼,但我不認爲這很重要。
我在做什麼錯?
感謝您的信息! – 2011-06-24 05:37:26
在你的例子中,如果someFuncitonName有一個點,你是如何解決它的?例如:guid = client.service.some.FunctionName(「一個字符串參數」,42) – dyoser 2011-12-03 18:04:44