soaplib与mod_wsgi / cherrypy

时间:2009-03-24 17:28:40

标签: python soap mod-wsgi cherrypy

我已经按照教程使用mod_wsgi设置Apache来连接cherrypy并使网站运行它。这是我的“myapp.wsgi”,开放http://localhost/效果很好。打开http://localhost/ape/实际上返回文本而不是soap响应,http://localhost/ape/service.wsdl返回500 HTTP错误代码。在运行如此简单的SOAP服务时,我做错了什么?如何让它返回有效的WSDL?我的代码如下所示

干杯

的Nik

import atexit, threading, cherrypy,sys
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array

sys.stdout = sys.stderr
cherrypy.config.update({'environment': 'embedded'})

class Root(object):
    def index(self):
        return 'Hello World!'
    index.exposed = True

    @soapmethod(_returns=String)
    def ape(self):
       return 'Ape!!'
    ape.exposed = True

application = cherrypy.Application(Root(), None)

2 个答案:

答案 0 :(得分:1)

我只是通过用

替换文件的最后一行来自行测试
cherrypy.quickstart(Root(), "/")

它对我来说效果很好。我建议尝试这个,看看它是否适合你;如果确实如此,那么你就会知道这是一个与在Apache / mod_wsgi下运行它有关的问题,而不是你代码的固有问题。

答案 1 :(得分:1)

以利是对的;仅仅创建一个Application实例是不够的。你必须将它挂载在cherrypyart()上才能安装在cherrypyart上。