Использовать веб-сервис SOAP в RoR - PullRequest
1 голос
/ 23 марта 2011

Мы пытаемся использовать веб-сервис SOAP в RoR. используя SOAP :: WSDLDriverFactory со следующим кодом:

  wsdl = SOAP::WSDLDriverFactory.new("http://<domain>/WSDL/v4.0/iLON100.WSDL")
  proxy = wsdl.create_rpc_driver
  proxy.get({:iLonItem => [{:Item => {:UCPTname => "Net/LON/Motion406"}}]})

Параметр службы get представлен следующим XML:

<Get xmlns="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/message/">
  <iLonItem>
    <Item xsi:type="LON_Network_Cfg">
      <UCPTname>MyNetwork</UCPTname>
    </Item>
  </iLonItem>
</Get>

Но я продолжаю получать эту ошибку: ноль не разрешено: UCPTname

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Наконец-то решил, благодаря proxy.wiredump_dev = $stdout, я смог обнюхать ответ / запрос SOAP.

Хеш-эквивалент в приведенном выше xml-коде:

{:iLonItem => 
  {:Item => [{:UCPTname => 'Net/LON/Motion406'}]}
}

Ятакой нуб в Ruby!

0 голосов
/ 23 марта 2011

Не используется SOAP :: WSDLDriverFactory - но я использовал Savon .

Есть ли у вас другой / рабочий способ вызова метода, например, soapUI ?

Затем я использую что-то вроде Charles , чтобы сравнить сообщение, отправленное через Savon и soapUI, чтобы увидеть, в чем разница ...

HTH, Крис

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...