不使用Django、CherryPy或其他框架的soaplib与mod_wsgi

3 投票
1 回答
1324 浏览
提问于 2025-04-16 20:08

我在网上查了查关于Python的soaplib,找到了一个例子。

import soaplib
from soaplib.core.service import rpc, DefinitionBase
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array


class HelloWorldService(DefinitionBase):
    @soap(String,Integer,_returns=Array(String))
    def say_hello(self,name,times):
        results = []
        for i in range(0,times):
            results.append('Hello, %s'%name)
        return results

if __name__=='__main__':
    try:
        from wsgiref.simple_server import make_server
        soap_application = soaplib.core.Application([HelloWorldService], 'tns')
        wsgi_application = wsgi.Application(soap_application)
        server = make_server('localhost', 7789, wsgi_application)
        server.serve_forever()
    except ImportError:
        print "Error: example server code requires Python >= 2.5"

这个例子运行得很好。不过我想在Apache服务器上用mod_wsgi来运行它。我在网上查了很多,发现大多数都是和Django、CherryPy或者Pylons一起用的。请问有没有办法在不使用任何Python网络框架的情况下运行这个例子?如果可以的话,应该怎么做才能在Apache的mod_wsgi下运行这个例子?我想在Unix系统上运行。

1 个回答

3

就像其他所有“与...集成”的文档一样,这里也有一个特别的地方,就是用 application = wsgi.Application(soap_application) 这行代码来做设置。

撰写回答