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 
Другие вопросы по тегам