基于wsdl创建python soap服务器

inv*_*sus 29 python soap wsdl

我有一个描述Java产品上的通信服务器客户端的wsdl文件.我正在实现一个基于Python的新服务器,它将实现相同的服务.

您是否知道基于wsdl创建Python服务器代码的任何方法,这不需要我编写所涉及的所有复杂类型?

另外,你推荐什么Api?

Fra*_*eza 18

这个问题没有得到足够的重视.

目前接受的答案是好的,但答案是"不".真的没有合理维护和一般的解决方案吗?

不幸的是,我不认为否定的答案是由于缺乏对问题的关注.在python中确实没有对WSDL的支持.如果你想避免从头开始构建自己的肥皂信封的复杂性,我唯一可以推荐你的是使用许多soap webservices工具(例如soapui)构建一个样本信封,然后将其用作模板字符串(I你的python代码中知道,可怕的

更新你可以使用spyne.它是一个python RPC工具包,其他协议支持SOAP.它将为您创建WSDL,但如果您的目标是实现您已经拥有的WSDL描述的服务,那么您将不得不微调您的spyne服务(用python编写),直到生成的WSDL与原始WSDL匹配


Bog*_*dan 17

说到SOAP支持,遗憾的是Python不再使用"包含电池".客户端的支持是可以接受的,但在服务器端,你基本上是自己的.

您可能希望为初学者查看以下内容:

http://wiki.python.org/moin/WebServices

http://pywebsvcs.sourceforge.net/

http://doughellmann.com/2009/09/01/evaluating-tools-for-developing-with-soap-in-python.html

如果你真的想继续这条路线,似乎ZSI是使用的工具,虽然我怀疑它是否适用于最新的2.x Python发行版.

使用Python 2.6.6,我尝试使用ZSI 2.0从WSDL开始构建Web服务.在使用wsdl2py和生成代码时得到一些"模块已被弃用"的警告wsdl2dispatch,不得不单独安装PyXML并破解我sys.path只是为了让它先解决,否则我得到"模块ext.reader不存在"然后才最终得到一个令人失望的"ZSI:在基本的"Hello world!"中,nillable(False),minOccurs(1)元素的错误得到了无" 带有必需元素的WS.

切换到ZSI 2.1_a1,它不再需要PyXML并wsdl2py完成所有操作(wsdl2dispatch2.0的操作),但仍然以"ZSI:EvaluateException得到无可用于nillable(False),minOccurs(1)元素"错误的方式结束.

这段经历并不是很有趣,但对于我对SOAP为万维网服务提供的内容提出意见已经足够了......这一点并不多(而且这对于基本的Web服务来说并不像WS-*规格).因人而异!

编辑:我最近碰到了这个问题,虽然面向客户端解决方案,但它也提到了一些用于构建SOAP服务的库.

  • 不幸的是,我开始同意你的解决方案.对SOAP Server的Python支持不太好.希望这些"新"图书馆取得一些成功.谢谢! (2认同)