2013-02-28 132 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

相关问题