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

来源: 作者: 2007-10-30 出处:pcdog.com

.net  python  soa  xml  
下一页 1 2 3 4 5 

  在 Python Web 服务开发者的这一部分中,Mike Olson 回到了编写一些 Python 代码上。这篇专栏文章将再次讨论同一系列专栏文章的第五篇和第六篇中的示例代码,Mike 和 Uche Ogbuji 分别在这两篇文章中讨论了 SOAP.py 和 ZSI,它们是可以在 Python 中使用的 SOAP 实现。

Mike 将继续研究这两种库,看看它们如何相互作用。

  Web 服务的承诺之一是互操作性。正如我们在先前的专栏文章中所阐述的,用不同的编程语言、在不同的平台上构建的 Web 服务应该就象由同一种语言所提供的服务一样一起工作。在本专栏先前的文章中我们实现了日历 Web 服务,在 Python Web 服务开发者的这一部分中,我将使用这个服务的客户机和服务器,看看它们如何互操作。

  为了要使用本文中的样本,请您按照同一系列专栏文章的第五部分和第六部分中的安装步骤安装 SOAP.py 和 ZSI。(您应该把这两篇文章再看一遍以获得关于 SOAP.py 和 ZSI 的背景知识;您可以在 参考资料部分找到它们的链接。)顺便提一下,最近 ZSI 已经有了更新的版本:版本 1.2 于今年 3 月发布了。在本专栏中出现过的样本对于 ZSI 1.1 和 1.2 都能用。对于那些有兴趣升级的开发者,请参阅下面的 参考资料部分以得到您可以去下载最新版本的 URL。安装使用标准的 distutils 命令。如果您安装了 ZSI 以前的版本,请先将其删除以避免冲突。要安装新版本,请将分发包解包,将位置改为 ZSI-1.2 目录。按照下面的样子执行安装命令:

[molson@penny ZSI-1.2]# python setup.py install

  ZSI 客户机与 SOAP.py 服务器

  在第一部分的分析中,您可以运行 ZSI 客户机,对应的服务器是 SOAP.py 服务器。您首先需要做的事情就是更改客户机和服务器在哪个端口上通信。SOAP.py 示例侦听端口 8888,而 ZSI 客户机侦听端口 8080。由于两个端口都可以用,所以您可以将所有示例都设置为端口 8888。

  起初,您可以试着完全按脚本原先的样子运行脚本(当然除了端口的更改)。记住,要启动服务器,请在一个窗口中运行脚本 soapy-server.py :

python soapy-server.py

  在另外一个窗口中,运行脚本 zsi-client.py :

python zsi-client.py

  在客户机窗口中,您会得到一条出错消息,它的内容是:

Traceback (most recent call last):
 File "zsi-client.py", line 21, in ?
  print b.Receive(TC.Any(aslist = b.aslist))
 File "/usr/local/lib/python2.1/site-packages/ZSI/client.py", line 227, in Receive
  raise TypeError, "Unexpected SOAP fault: " + msg.string
TypeError: Unexpected SOAP fault: No method getMonth found


更多内容请看PCdog.com--Python编程  Python相关文章专题
下一页 1 2 3 4 5 
上一篇:Python Web 服务开发者 第 6 部分: Python SOAP 库,第 2 部分
下一篇:Socket模拟SOAP消息