SOAP-решение в Python
Я довольно новичок в 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: Метод не найден: 'Application.Application.say_hello2'
Пожалуйста, помогите мне решить эту проблему:)
Я тоже думал о другом. Сопалиб кажется неактивным с 2010 года и, может быть, здесь кроется какая-то проблема? Может быть, есть более быстрые и эффективные решения для SOAP-соединений, чем SUDS+soaplib? Если так, пожалуйста, посоветуйте мне что-нибудь.
Спасибо за помощь майк
1 ответ
Похоже, проблема связана с suds, кешем
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