[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

WebServices & WSDL

Marcin Tyman

8/31/2007 8:02:00 AM

Hi guys,

Here is a part of my code (part o my class):

@soaps<<SOAP::WSDLDriverFactory.new("http://#{@Address}:#{@wsPort}/#{wsdl}").create_rpc_driver()

def method_missing(m,*args)
@soaps.each do |soap|
begin
result = soap.send("#{m}",*args)
return result
rescue NoMethodError
end
end
raise NoMethodError
puts m
end

I invoke soap.send by passing #{m} (as a WS method name) and *args are
arguments of the method which are ruby primitives (int, float, string
etc.)
But the problem is that WebServices will change and instead of
primitives their methods will get WSDL objects i.e. like that:
<complexType name="Group">
<sequence>
<element name="id" type="xsd:int"/>
<element name="inherited" type="xsd:boolean"/>
<element name="name" nillable="true" type="soapenc:string"/>
<element name="parentGroupId" type="xsd:int"/>
<element name="priority" type="xsd:int"/>
<element name="roleId" type="xsd:int"/>
</sequence>
</complexType>


How to create such object in ruby. What library can I use?


Any help will be helful
Thanks in advance
--
Posted via http://www.ruby-....

3 Answers

Marcin Tyman

9/3/2007 6:26:00 AM

0

Lee Irving wrote:
> Have you tried wsdl2ruby script, this will create you a fully
> functioning
> ruby wsdl client ?

No, I haven't. But I found out about it. Ehm... We'll see how it works.
Thanks for answer.
--
Posted via http://www.ruby-....

Marcin Tyman

9/3/2007 9:54:00 AM

0

Lee Irving wrote:
> Have you tried wsdl2ruby script, this will create you a fully
> functioning
> ruby wsdl client ?

can you explain how to use it. Because I realized that wsdl2ruby.rb
contains only class definition and there is no documentation for it.
--
Posted via http://www.ruby-....

Felipe Contreras

9/3/2007 5:20:00 PM

0

Hi,

On 9/3/07, Marcin Tyman <m.tyman@interia.pl> wrote:
> Lee Irving wrote:
> > Have you tried wsdl2ruby script, this will create you a fully
> > functioning
> > ruby wsdl client ?
>
> can you explain how to use it. Because I realized that wsdl2ruby.rb
> contains only class definition and there is no documentation for it.

There should be a wsdl2ruby script, but AFAIK it's not usually distributed.

This is what I do:

require 'wsdl/soap/wsdl2ruby'

wsdl = WSDL::SOAP::WSDL2Ruby.new
wsdl.location = "wsdl/data/ps/ps.wsdl"
wsdl.opt['force'] = true
wsdl.opt['classdef'] = "wsdl/ps"
wsdl.opt['module_path'] = "PS"
wsdl.opt['mapping_registry'] ||= nil
wsdl.opt['driver'] ||= nil
wsdl.run

You can ask for more information in:
http://groups.google.com/gr...

--
Felipe Contreras