用python发布基于soap的webservice(二)在 用python发布基于soap的webservice(一) 文章中,咱用的是python自带的wsgiref包,它是一个轻量级的web服务器,用来做做测试啊, 调bug的之类的是可以的,但是直接拿来做真正的服务器却还是不行。 所以本文主要讨论的是如何用 python + nginx + fastcgi + flup + soaplib 这些工具来构建一个可以承受高并发的Webservice ============================================================================================================= 废话不多说,直接上代码 ,server.py #!/usr/bin/python from soaplib.service imp from soaplib.serializers.primitive imp from soaplib.wsgi_soap imp class HelloWorldService(SimpleWSGISoapApp): @soapmethod(String, _returns=String) def says(self,name): return name def make_client(): from soaplib.client imp client = make_service_client('http://192.168.1.87:17889', HelloWorldService()) (注1) return client if __name__=='__main__': try: imp #这里的HelloWorldService后面必须带括号,不然会出错 #flups.WSGIServer(HelloWorldService(), multithreaded=True, multiprocess=False, bindAddress=('127.0.0.1', 17900)).run() (注2) flups.WSGIServer(HelloWorldService()).run() (注3) except Imp print "Error: example server co 注1: 这里的17889是nginx对外公布的端口,注意和下边的 17900端口的区别 如果不想用fastcgi的形式运行的话,那么就用注2 的那行代码,并且直接在命令行里面输入:python server.py(这里的17900监听的nginx,它只接受nginx传过来的参数,外部无法直接访问) 而如果要用fastcgi的话,那么就用注3的那行代码,并且在命令行输入 : spawn-fcgi -f /da 到这一步以后 ,我们就可以运行客户端代码 client.py #!/usr/bin/python from server imp a = make_client() print a.says('hello,world') 直接python client.py,就可以得到 hello,world 的字样
来自:http://blog.163.com/sky20081816@126/blog/static/16476102320109156135531/ |
|
来自: java_laq小馆 > 《Python》