[Ruby] Вопрос к знатокам SOAP, .NET/Mono remoting

Vladimir Zdorovenco sunwinder на gmail.com
Ср Янв 26 04:30:18 MSK 2005


Привет

Пытаюсь подружить .NET/Mono и Ruby через SoapFormatter. Все безумно
просто, по крайней мере когда

сервер - .NET/Mono 

А вот наоборот когда сервер на Ruby глюк. Пример простого запроса Ruby - Ruby:

// вырезал
  <env:Body>
    <n1:add xmlns:n1="urn:WeatherService"
        env:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <n xsi:type="xsd:int">1</n>
      <m xsi:type="xsd:int">2</m>
    </n1:add>
  </env:Body>
</env:Envelope>

т.е <n1:add xmlns:n1="urn:WeatherService"...

когда же из Mono, то гад шлет:

// вырезал
  <SOAP-ENV:Body>
    <i2:add id="ref-1"
xmlns:i2="http://schemas.microsoft.com/clr/nsassem/WeatherService/client">
      <n xsi:type="xsd:int">2</n>
      <m xsi:type="xsd:int">3</m>
    </i2:add>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

т.е <i2:add id="ref-1"
xmlns:i2="http://schemas.microsoft.com/clr/nsassem/WeatherService/client">

Отсюда вопрос, как думаете, это Mono глюк или Ruby ? А может и мой,
если я чего-то совсем недопонимаю пожалуйста поправьте =)

Пока решил как мог, коряво:

/usr/local/lib/ruby/1.8/soap/rpc/router.rb:149

  def fqname(qname)
    namespace = qname.namespace
    qname.namespace =~ /schemas.microsoft.com\/clr\/nsassem\/(\w+)/
    if $1
      namespace = "urn:#{$1}"
    end

    "#{ namespace }:#{ qname.name }"
  end


-- 
Be happy, 
        Vovka

ICQ: 127534289


Подробная информация о списке рассылки Ruby