SOAP-решение на питоне

я новичок в SOAP и веб-сервисах, и я пытался создать работающую и стабильную среду SOAP. После некоторого чтения я решил использовать клиент suds и сервер soaplib. Я использую python2.7 и установил suds и soaplib с помощью easy_install, так что это скорее комбинация программ по умолчанию. Операционная система новейшая Ubuntu 13.

Я создал 2 скрипта на основе примера hello_world из учебника: http://soaplib.github.io/soaplib/2_0/pages/helloworld.html

После небольших изменений:

  • добавление from soaplib.core.service import soap на сервер
  • добавление имени службы в hello_client = Client('http://localhost:7789/HelloWorldService?wsdl') в клиенте

У меня есть рабочее решение, которое позволяет мне запускать сервер (порт занят), а клиент suds возвращает мне информацию после использования функции say_hello.

Проблема в том, что я не могу создавать новые методы на этом сервере, используя определение, используемое в примере. Даже простое изменение имени с say_hello на say_hello2 выдает ошибку: suds.MethodNotFound: Method not found: 'Application.Application.say_hello2'

Пожалуйста, помогите мне решить эту проблему :)

Я думал и о другом. sopalib кажется неактивным с 2010 года, и, может быть, здесь кроется какая-то проблема? Может быть, есть лучшие, более быстрые и эффективные решения для SOAP-соединений, чем SUDS+soaplib? Если да, то посоветуйте мне что-нибудь.

Спасибо за помощь Майк


person zordax    schedule 07.08.2013    source источник


Ответы (1)


Похоже проблема из-за пены, кеша

from suds.client import Client
hello_client = Client('http://localhost:7789/HelloWorldService?wsdl')

hello_client.options.cache.clear() #make this line

result = hello_client.service.say_hello2(...) # parameters inside 
person Nikhil Rupanawar    schedule 07.08.2013
comment
дополнительная информация доступна здесь fedorahosted.org/suds/wiki/Documentation#PERFORMANCE - person Nikhil Rupanawar; 07.08.2013