Версия для печати

В продолжении к предыдущему посту, хочу привести простой пример SOAP-сервера, который реализован только на python'е:

#!/usr/bin/env python
#
### soapagent_standalone_server.py ###
#
from ZSI import dispatch

import soapagent_services as ss

def main():
     dispatch.AsServer(port=8080, modules=(ss,))
if __name__ == "__main__":  main()

Который включает модуль soapagent_services.py и начинает диспетчеризацию реализованных там обработчиков. Т.е. по сути, это замена apache+mod_python.

Еще раз кратко шаг за шагом, как запустить такой сервер:

  1. берем soapagent.wsdl и получаем из него soapagent_server.py и soapagent_types.py (командой wsdl2py)
  2. создаем soapagent_services.py и реализуем в нем обработчики (пример в предыдущем посте)
  3. создаем soapagent_standalone_server.py и запускаем

Из soapagent_client.py можно сделать такого клиента:

#!/usr/bin/env python
import sys
from soapagent_client import *

def main():
    loc = soapagentLocator()

#   Для вывода полного SOAP диалога (в сыром виде) можно включить trace
#   без trace:
#   port = loc.getsoapagentPort()
#   с trace:
    port = loc.getsoapagentPort(tracefile=sys.stdout)

    msg = SUM()
    msg._aVal = 1
    msg._bVal = 2
    response = port.SUM(msg)
    print response.__dict__
if __name__ == "__main__":    main()
Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

По теме:

Оставить комментарий



Anti-spam image