spyne SOAP的Hello world示例

2024-10-01 09:16:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试几个不同的Python SOAP服务器库,但似乎无法让“hello world”示例适用于spynehttps://github.com/arskom/spyne/blob/master/examples/helloworld_soap.py

当我运行它时,它会启动一个SOAP服务器,我可以在http://localhost:7789/?wsdl的浏览器中成功地查看WSDL。但是,当我尝试连接到一个suds客户端时,我遇到了一个异常:

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

我会做错什么?我用的是spyne2.9.4和suds 0.4。在


Tags: inpyselfhomelibpackageslocalline
1条回答
网友
1楼 · 发布于 2024-10-01 09:16:00

我很抱歉给你添麻烦。在

您链接到的示例如下:https://github.com/arskom/spyne/blob/ec2bd6feb89fb36915b7266497c177e4c6f78b83/examples/helloworld_soap.py

它被用来说明一个suds错误,它在my own version of suds中被修复,但在主流suds中没有。后来我忘了在Spyne主存储库中恢复它。在

你可以找到relevant commit here。在

Suds无法处理命名空间与targetNamespace不同的传出头对象。您可以通过设置SomeObject.__namespace__ = 'spyne.examples.hello.soap'而不是{}来让您的sud版本正常工作。在

您也可以删除在helloworld示例中不合适的传出头声明。在

我希望这有帮助。在

相关问题 更多 >