Стив, вы видите, что wsdl: перед тегом ProcessMessage? - Я думал, что это единственное, что меня отталкивает, но это не так (кстати, это трудно установить в soap.rb в Savon lib на строке 160). Это, даже если я не spacify это в soap.namespaces - это трудно генерируется и прикрепляется в окончательном XML. Что не разрешено моим сервисом.
Хотя генерируемый xml является действительным xml, он не завершен требованиями службы, с которой я пытаюсь поговорить. Т.е .: в сгенерированном xml,
<?xml version="1.0" encoding="UTF-8"?>
тег отсутствует, также мне нужен PayloadManifest в заголовке, плюс мне нужно wsu: созданный и wsu: expires в моем теге wsse:, но они не реализованы, и т. Д., И т. Д. Куча других маленьких причуд, которые слишком специфичны для моего случая. Однако у мыла есть приватный метод = xml_body. Кроме того, мыльная библиотека lib в методе to_xml проверяет, был ли @xml_body уже установлен, прежде чем генерировать свой собственный xml. В итоге я немного изменил поведение мыла. сделав soap.xml_body = общедоступным. Итак, я смог сделать:
response = client.process_message! do |soap|
soap.action = "http://www.starstandards.org/webservices/2005/10/transport/operations/ProcessMessage"
soap.xml_body = "MY XML STRING GENERATED ELSEWHERE GOES HERE"
end
Что, наконец, работает !!!!
Я предложу это Rubii - если эта опция станет доступной, это решит множество редких случаев - когда люди могут создавать свои собственные XML и использовать оставшуюся часть savon lib.