2013-02-28 178 views
1

我與幾個不同的Python SOAP服務器庫嘗試,我不能夠獲得「世界你好」例如對於spyne工作: https://github.com/arskom/spyne/blob/master/examples/helloworld_soap.pyHello World示例爲spyne SOAP服務器

當我運行它,啓動一個SOAP服務器,並且我可以在http://localhost:7789/?wsdl的瀏覽器中成功查看WSDL。然而,當我嘗試與泡沫客戶端連接時,我發現有一個例外:

Python 2.7.3 (default, Aug 1 2012, 05:14:39) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from suds.client import Client 
>>> c = Client('http://localhost:7789/?wsdl') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/client.py", line 112, in __init__ 
    self.wsdl = reader.open(url) 
    File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/reader.py", line 152, in open 
    d = self.fn(url, self.options) 
    File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/wsdl.py", line 158, in __init__ 
    self.resolve() 
    File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/wsdl.py", line 207, in resolve 
    c.resolve(self) 
    File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/wsdl.py", line 661, in resolve 
    self.resolveheaders(definitions, op) 
    File "/home/acordiner/ve/local/lib/python2.7/site-packages/suds/wsdl.py", line 725, in resolveheaders 
    raise Exception, "message'%s', not-found" % mn 
Exception: message's0:SomeObject', not-found 

我會做什麼錯?我使用spyne 2.9.4和泡沫0.4。

回答

5

我對此感到抱歉。

,你掛是這樣的例子:https://github.com/arskom/spyne/blob/ec2bd6feb89fb36915b7266497c177e4c6f78b83/examples/helloworld_soap.py

它被用來說明泡沫的錯誤,這是固定在my own version of suds,但不是主流泡沫。後來我忘記在主Spyne存儲庫中恢復它。

您可以找到relevant commit here

Suds無法應對名稱空間不同於targetNamespace的傳出標頭對象。您可以通過設置SomeObject.__namespace__ = 'spyne.examples.hello.soap'而不是'aaa'來使您的版本起泡。

你也可以直接刪除在helloworld示例中不在位的傳出頭聲明。

我希望這會有所幫助。

+0

現在有道理,謝謝! – aco 2013-03-04 01:34:16

+0

你救了我,非常感謝! – 2014-09-17 18:44:08