From: Jim Menard Date: 2004-05-30T07:14:16+09:00 Subject: Re: SOAP4R WSDL response Hate to reply to my own question, but I've learned something about what was going wrong. Instead, I have a new question. On May 29, 2004, at 5:55 PM, I wrote: > I'm trying to use wsdlDriver.rb to call a Web service. I have a WSDL > file. When I run my script, it connects to the Web service, calls the > operation I specify ("approve"), and receives the response string. > However, it doesn't put the response string into the message part that > the operation "approve" uses as its output message. Instead, it tries > to find something called "approveResponse", which is not described in > the WSDL file. I see the following error: > > c:/ruby/lib/ruby/1.8/wsdl/soap/complexType.rb:69:in > `child_defined_complextype': Cannot find > {http://www.w3.org/2001/XMLSchema}string as a children of > {http://loans.org/wsdl/loan-approval}approveResponse. (RuntimeError) > from c:/ruby/lib/ruby/1.8/soap/encodingstyle/soapHandler.rb:382:in > `decode_tag_by_wsdl' > ... It turns out that the WSDL didn't match the reply from the server. The reply body is approved Now, the WSDL for the reply message used to be so I tried changing that to but that didn't work. I saw the same error message ("can't find string as child of approveResponse"). So I tried and it worked! Now I need to figure out why I have to call the part "string". Does anyone know what is going on here? Thanks for your help. Jim -- Jim Menard, jimm@io.com, http://www.io.com/~jimm/ "Dvorak users of the world flgkd!" -- Kirsten Chevalier in rec.humor.oracle.d