1

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

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

经过一些小改动后:

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

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

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

请帮我解决这个问题:)

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

谢谢你的帮助迈克

4

1 回答 1

1

似乎问题是由于泡沫,缓存

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 
于 2013-08-07T09:33:33.450 回答