【问题标题】:Generating a WSDL using Python and SOAPpy使用 Python 和 SOAPpy 生成 WSDL
【发布时间】:2008-11-07 18:05:08
【问题描述】:

首先,我承认我是 Web 服务的新手,虽然我熟悉 HTML 和基本的 Web 内容。我使用 Python 创建了一个快速而简单的 Web 服务,它调用 MySQL 数据库中的存储过程,它只返回一个 BIGINT 值。我想在 Web 服务中返回这个值,并且我想生成一个可以提供给我们的 Web 开发人员的 WSDL。我可能会补充一点,存储过程只返回一个值。

下面是一些示例代码:

#!/usr/bin/python

import SOAPpy
import MySQLdb

def getNEXTVAL():
    cursor = db.cursor()
    cursor.execute( "CALL my_stored_procedure()" )  # Returns a number
    result=cursor.fetchall()

    for record in result:
        return record[0]

db=MySQLdb.connect(host="localhost", user="myuser", passwd="********", db="testing")
server = SOAPpy.SOAPServer(("10.1.22.29", 8080))
server.registerFunction(getNEXTVAL)
server.serve_forever()

我想生成一个可以提供给网络人员的 WSDL,我想知道是否可以让 SOAPpy 为我生成一个。这可能吗?

【问题讨论】:

标签: python soap wsdl soappy zsi


【解决方案1】:

当我去年尝试编写 Python Web 服务时,我最终使用了 ZSI-2.0(类似于 SOAPpy 的继承人)和 paper available on its web

基本上,我手动编写了我的 WSDL 文件,然后使用 ZSI 东西为我的客户端和服务器代码生成存根。我不会将这种体验描述为愉快,但该应用程序确实有效。

【讨论】:

  • 我听从了您的建议并改用了 ZSI 而不是 SOAPpy,并且通过使用论文和其他示例,我 几乎 现在可以使用它了。谢谢!
  • 我正在尝试使用 ZSI 实现我的 SOAP 服务器,但遇到了一些问题。你能看看this questionthis one吗?
【解决方案2】:

我想生成一个 WSDL,我可以将它提供给网络用户,....

你可以试试soaplib。它具有按需生成 WSDL。

【讨论】:

    【解决方案3】:

    抱歉几天前的问题。现在我可以成功调用服务器了。提供了一个演示:

    def test_soappy():
        """test for SOAPpy.SOAPServer
        """
        #okay
        # it's good for SOAPpy.SOAPServer.
        # in a method,it can have morn than 2 ws server.
        server = SOAPProxy("http://localhost:8081/")
        print server.sum(1,2)
        print server.div(10,2)
    

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多