From: Xavier Noria Date: 2006-06-16T04:53:01+09:00 Subject: Re: help with SOAP4R and a simple complex type On Jun 15, 2006, at 19:27, Xavier Noria wrote: > I am trying to do a remote call with SOAP4R (loading a WSDL), the > signature has a parameter of this complex type > > > > > wsdl:arrayType="xsd:string[]"/> > > > > > Passing a Ruby array of strings is not working. I am not 100% sure > that parameter is the guilty, but I'd bet a dinner :-). > > Should I do something special to build and pass an objetc for that > complex type? I reply to myself for the sake of the archives. Thanks to a blog entry[*] from someone who I own a beer, I learnt that you need to download the soap4r tarball. In the tarball there is a utility called wsdl2ruby.rb. I executed ruby wsdl2ruby.rb --wsdl wsdl_url --type client and got a few Ruby files that represent the service and its metadata. In particular you get a driver named like the service: require 'defaultDriver' # MyService is generated by wsdl2ruby.rb serv = MyService.new # ArrayOfstring is defined as child of Array by wsdl2ruby.rb ros = ArrayOfstring.new ros << "foo" # my_method receives an ArrayOfstring result = serv.my_method(ros) It works like a charm! -- fxn [*] http://thebogles.com/blog/2005/12/09/