首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于同时处理多个请求的SOAP服务器的Python库?

用于同时处理多个请求的SOAP服务器的Python库?
EN

Stack Overflow用户
提问于 2012-02-16 09:29:41
回答 3查看 1.2K关注 0票数 1

我正在寻找一个python库,以便轻松创建一个服务器,该服务器公开web服务(SOAP),并且可以同时处理多个请求。

我试过使用ZSI和rcplib,但没有成功。

更新:

谢谢你的回答。ZSI和rcplib (soaplib的继承者)都实现了自己的Http服务器。如何将ZSI/rcplib与您提到的库集成?

Update2:

经过一些调整后,我成功地在linux上安装并运行了这个程序,而且它似乎运行得很好。

然后,我在windows上安装了它,经过了许多丑陋的调整,然后我固执地意识到windows中不支持WSGIDaemonProcess ( mod_wsgi文档中也提到过)。无论如何,我试着运行它,它似乎可以异步地处理每个请求,但我不确定它在压力下是否能正常工作。

不管怎样谢谢你..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-17 10:05:51

Hello rpclib示例

请从rpclib示例中查看此示例。

代码语言:javascript
复制
# File /home/myhome/test.wsgi
import logging

from rpclib.application import Application
from rpclib.decorator import srpc
from rpclib.interface.wsdl import Wsdl11
from rpclib.protocol.soap import Soap11
from rpclib.service import ServiceBase
from rpclib.model.complex import Iterable
from rpclib.model.primitive import Integer
from rpclib.model.primitive import String
from rpclib.server.wsgi import WsgiApplication

class HelloWorldService(ServiceBase):
    @srpc(String, Integer, _returns=Iterable(String))
    def say_hello(name, times):
        '''
        Docstrings for service methods appear as documentation in the wsdl
        <b>what fun</b>
        @param name the name to say hello to
        @param the number of times to say hello
        @return the completed array
        '''

        for i in xrange(times):
            yield 'Hello, %s' % name

application = WsgiApplication(Application([HelloWorldService], 'rpclib.examples.hello.soap',
                interface=Wsdl11(), in_protocol=Soap11(), out_protocol=Soap11()))

还将apache配置更改为

代码语言:javascript
复制
WSGIDaemonProcess example processes=5 threads=5
WSGIProcessGroup example

WSGIScriptAlias / /home/myhome/test.wsgi
<Directory /home/myhome/>
Order deny,allow
Allow from all
</Directory>

根据您的需求,您可以更改进程和线程。

票数 1
EN

Stack Overflow用户

发布于 2012-02-16 11:18:11

对不起,也许我不太明白你的意思。

我认为您希望您的服务器并行处理HTTP请求,但是不需要考虑您的代码/库。并行化应该由Apache和mod_wsgi/mod_python模块完成。

例如,只需使用“MaxClients 100”和“WSGIDaemonProcess webservice processes=1 threads=100”设置WSGIDaemonProcess。

票数 1
EN

Stack Overflow用户

发布于 2012-02-16 11:38:56

您可以使用索普林来开发soap服务。要向其他人公开该服务,可以使用Apache和mod_wsgi模块。要将其设置为多线程或多处理,可以在wsgi中设置参数

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9308629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档