WEB开发网
开发学院软件开发Python Python Web 服务开发者: Python SOAP 库,第 4 部... 阅读

Python Web 服务开发者: Python SOAP 库,第 4 部分

 2008-09-30 13:02:58 来源:WEB开发网   
核心提示: 我们做过许多徒劳无功的试验(其中包括使用 ZSI 的 gDateTime 类),钻研过文档,Python Web 服务开发者: Python SOAP 库,第 4 部分(3),甚至用 Google 多次搜索该主题,都无法解决如何使 ZSI 以参数的形式传递 date/time,所以我们必须

我们做过许多徒劳无功的试验(其中包括使用 ZSI 的 gDateTime 类),钻研过文档,甚至用 Google 多次搜索该主题,都无法解决如何使 ZSI 以参数的形式传递 date/time,而不用为使用 gDateTime 类作为 类型代码的 codedate/time 对象编写特定的类。这看起来是开发人员无法逾越的一个障碍,他们无法编写这样一个通用的数据类型。

wsdl2py

ZSI 现在也带有一种脚本,也就是 wsdl2py ,在文档中没有记录它,不过 Python 源代码附带了这样的文档字符串:

“一个自动从 wsdl 定义生成客户端接口代码的实用程序和一组代表元素声明和类型定义的类。这将在当前的工作目录下生成两个文件,该目录以 wsdl 定义名称来命名。”

这看起来,我们可以看到在 WSDL 文件中定义的 WXSDT dateTime 参数,生成所有的用于从 Python 编组这些值的工具。这些脚本不能处理 WSDL URL,所以我们必须把这些定义下载到本地文件。下例显示了如何在 UNIX 上使用 wget 命令:

这听起来像是很有希望的,并且我们认为有可能在 WSDL 文件中定义 WXSDT dateTime 参数,并且生成需要用来解组 Python 中的这些值的工具。该脚本不能处理 WSDL URL,所以我们必须把定义下载到本地文件。下面是一个如何在 UNIX 上使用 wget 命令的示例:

wget -O SBGGetAirFareQuote.wsdl
http://wavendon.dsdata.co.uk:8080/axis/services/SBGGetAirFareQuote?wsdl

遗憾的是,使用 wsdl2py 脚本的作用是非常有限的,如下面的清单所示:

wsdl2py -f SBGGetAirFareQuote.wsdl
Traceback (most recent call last):
 
    
    ... Part of traceback omitted for brevity ...
 File "/usr/lib/python2.2/site-packages/ZSI/wsdl2python.py", line 1058,
 in _fromComplexType
  self._complexTypeComplexContent(tp)
 File "/usr/lib/python2.2/site-packages/ZSI/wsdl2python.py", line 1147,
 in _complexTypeComplexContent
  arrayinfo = dt.getArrayType()
 File "/usr/lib/python2.2/site-packages/ZSI/wsdlInterface.py", line 1712,
 in getArrayType
  raise WsdlInterfaceError, 'could not determine array type'
ZSI.wsdlInterface.WsdlInterfaceError: could not determine array type
   

上一页  1 2 3 4  下一页

Tags:Python Web 服务

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接