Project

General

Profile

Backport #2361

Updated by jeremyevans0 (Jeremy Evans) over 4 years ago

=begin 
  
  I upgraded to Snow Leopard yesterday and the 1.8.7 wsdlDriver suite doesn't like a wsdl file that 1.8.6 processed fine. 
 
  I'm running this call: 
  SOAP::WSDLDriverFactory.new("https://api.yieldmanager.com/api-1.30/contact.php?wsdl").create_rpc_driver 
 
  But when it tries to parse the 2nd line (<wsdl:import namespace="http://api.yieldmanager.com/types" location="xsd_gen.php"/>) it throws the following error: 
 
  NoMethodError: undefined method `targetnamespace=' for #<WSDL::XMLSchema::Schema:0x8174b8b0> 
  method parse_attr in import.rb at line 44 
  method decode_tag in parser.rb at line 143 
  method each in parser.rb at line 139 
  method decode_tag in parser.rb at line 139 
  method start_element in parser.rb at line 84 
  method start_element in parser.rb at line 67 
  method tag_start in rexmlparser.rb at line 34 
  method parse in streamparser.rb at line 24 
  method parse_stream in document.rb at line 201 
  method do_parse in rexmlparser.rb at line 27 
  method parse in parser.rb at line 65 
  method parse in importer.rb at line 29 
  method import in importer.rb at line 31 
  method import in importer.rb at line 18 
  method import in wsdlDriver.rb at line 124 
  method initialize in wsdlDriver.rb at line 28 
  method new in yield_manager.rb at line 40 
  method client_for in yield_manager.rb at line 40 
  method start_session in yield_manager.rb at line 56 
  method session in yield_manager.rb at line 47 
  method find_by_description in vurl_lookup.rb at line 15 
  method test_find_by_description in vurl_lookup_test.rb at line 12 
 
  The URL of the xsd_gen file is https://api.yieldmanager.com/api-1.30/xsd_gen.php 
 
  After much digging, I discovered that commenting-out this block from wsdl/import.rb (lines 43-45): 
 
          if @content 
    @content.targetnamespace = @namespace 
          end 
 
  ...allows the file to parse normally and my request to complete. However, the files don't appear to have changed between the 1.8.6 release I was using (ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]) and the 1.8.7 that comes with Snow Leopard (ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]), or if they have I can't find the change. 
 
  Any clue as to what might have changed and how I can move this fix out of the library and into my client? If it's non-standard XML, I'd like to point it out to their tech support team. 
 
  Thanks in advance, 
  Bill 
 
 =end 
 

Back