1

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

干杯

尼克

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)
4

2 回答 2

1

我刚刚通过将文件的最后一行替换为

cherrypy.quickstart(Root(), "/")

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

于 2009-03-24T17:59:45.217 回答
1

以利是对的;仅仅创建一个 Application 实例是不够的。您必须将它安装在cherrypy.tree 上,quickstart() 会为您完成。

于 2009-03-27T00:27:15.690 回答