我是SOAP和Web服务的新手,因此我尝试创建一个工作稳定的SOAP环境。经过一番阅读后,我决定使用suds客户端和soaplib服务器。
我正在使用python2.7,并且已经通过使用easy_install安装了suds和soaplib,因此它是程序的默认组合。操作系统是最新的Ubuntu 13。

我基于教程hello_world示例创建了2个脚本:
http://soaplib.github.io/soaplib/2_0/pages/helloworld.html

经过一些小的更改后:


在服务器中添加from soaplib.core.service import soap
在客户端的hello_client = Client('http://localhost:7789/HelloWorldService?wsdl')中添加服务名称


我有一个可行的解决方案,允许我运行服务器(端口繁忙),并且在使用say_hello函数后,suds客户端会向我返回信息。

问题是我无法使用示例中使用的定义在此服务器中创建新方法。甚至简单地将名称从say_hello更改为say_hello2也会给我错误:
suds.MethodNotFound:未找到方法:'Application.Application.say_hello2'

请帮我解决这个问题:)

我也在考虑其他事情。自2010年以来,sopalib似乎没有任何活动,也许这里存在一些问题?也许有比SUDS + soaplib更好,更快和更有效的SOAP连接解决方​​案?如果是这样,请给我一些建议。

感谢帮助
麦克风

最佳答案

好像问题是由于泡沫,缓存

from suds.client import Client
hello_client = Client('http://localhost:7789/HelloWorldService?wsdl')

hello_client.options.cache.clear() #make this line

result = hello_client.service.say_hello2(...) # parameters inside

关于python - python中的SOAP解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18098636/

10-13 01:58