Как указать BasicHttpBinding с Savon (RoR)

Я получаю эту ошибку:

(a:6016) Сообщение с действием «xxx» не может быть обработано получателем из-за несоответствия ContractFilter в EndpointDispatcher. Это может быть связано либо с несоответствием контракта (несовпадение действий между отправителем и получателем), либо с несоответствием привязки/безопасности между отправителем и получателем. Убедитесь, что отправитель и получатель имеют один и тот же контракт и одинаковую привязку (включая требования безопасности, например, сообщение, транспорт, нет).

И я заметил, что привязка, используемая WSDL моего провайдера, такова:

BasicHttpBinding_IxFlow

Думаю, мне нужно указать это в моем контроллере Savon. Как я могу это сделать?

Спасибо.


person content01    schedule 29.06.2011    source источник


Ответы (1)


Поскольку сообщение об ошибке не очень полезно (получено для различных ошибок), вот несколько советов:

  • попробуйте вызвать службу (или просто сгенерируйте xml) с другого клиента и запишите XML
  • сравните с Savonrb XML (он выводит его на консоль, не очень хорошо отформатированный, но достаточно хороший)
  • отправьте XML, полученный от другого клиента, через Savon. Это работает? (вы можете указать собственный XML с блочной версией метода client#request)
  • Look at (this was the problem with my service):
    • Order of parameters
    • Пространство имен параметров
    • Заголовок SOAPAction (можно указать и в блочной версии)
person Pascal    schedule 26.07.2011