[BioRuby] esoap.rb

Moses Hohman mmhohman at northwestern.edu
Sat Dec 11 15:49:57 EST 2004


So, David, you think it's actually a server-side WSDL problem? Just 
confirming that I understand your email.

That would be good news.

Moses

On Dec 11, 2004, at 8:37 AM, David Wheeler wrote:

> Toshiaki:
>
> Great!  In case it helps, I've been exploring the wsdl we're using in
> eutils_a.wsdl and I can eliminate most of the problems by replacing the
> wsdl:import statements with xsd:import statements and including the xsd
> namespace. Hence, if I replace the original import block, commented out
> below, with the wsdl:types block that follows, problem Number Two goes
> away.  From what I read on the web, the syntax of the second block is 
> not
> considered to be correct.
>
> David
>
> #need to add this to use xsd:schema tag
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
> #new import block that seems to work
>
>  <wsdl:types>
>     <xsd:schema
> targetNamespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/">
>     <xsd:import
> namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
>       schemaLocation="egquery.xsd"/>
>       <xsd:import
> namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
>       schemaLocation="einfo.xsd"/>
>       <xsd:import
> namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
>       schemaLocation="elink.xsd"/>
>       <xsd:import
> namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
>       schemaLocation="esearch.xsd"/>
>       <xsd:import
> namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
>       schemaLocation="efetch.xsd"/>
>       <xsd:import
> namespace="http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/"
>       schemaLocation="esummary.xsd"/>
>
>     </xsd:schema>
>   </wsdl:types>
>
>
> #old import block that is giving parse errors
>
> <!--
>   <wsdl:import 
> namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
> location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/egquery.xsd" 
> />
>   <wsdl:import 
> namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
> location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/einfo.xsd" />
>   <wsdl:import 
> namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
> location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/elink.xsd" />
>   <wsdl:import 
> namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
> location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/esearch.xsd" 
> />
>   <wsdl:import 
> namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
> location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/esummary.xsd" 
> />
>   <wsdl:import 
> namespace="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/"
> location="http://www.ncbi.nlm.nih.gov/entrez/eutils/soap/efetch.xsd" />
>
> -->
>
> On Sat, 11 Dec 2004, Toshiaki Katayama wrote:
>
>> Hi David,
>>
>> I have contacted the author of SOAP4R.
>> He will implement this function soon so that we can use eutils_a.wsdl
>> without any modification on server side, hopefully. :)
>>
>> Regards,
>> Toshiaki Katayama
>>
>> On 2004/12/11, at 1:17, david wheeler wrote:
>>
>>> Moses, Toshiaki:
>>>
>>> Looks like the relative urls you saw in the wsdl were one problem...
>>> Our
>>> SOAP specialist has created a new wsdl for testing with absolute urls
>>> at:
>>>
>>> http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/eutils_a.wsdl
>>>
>>> Using this one, gets me to the new error that you also see when you
>>> curl the
>>> XSD files:
>>>
>>> /usr/lib/ruby/1.8/wsdl/xmlSchema/element.rb:76:in `parse_attr':
>>> NotImplementedError (NotImplementedError)
>>>         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:141:in
>>> `decode_tag'
>>>         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:121:in `each'
>>>         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:121:in
>>> `decode_tag'
>>>         from /usr/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:79:in
>>> `start_element'
>>>         from /usr/lib/ruby/1.8/xsd/xmlparser/parser.rb:67:in
>>> `start_element'
>>>         from /usr/lib/ruby/1.8/xsd/xmlparser/rexmlparser.rb:34:in
>>> `tag_start'
>>>         from /usr/lib/ruby/1.8/rexml/parsers/streamparser.rb:17:in
>>> `parse'
>>>         from /usr/lib/ruby/1.8/rexml/document.rb:166:in 
>>> `parse_stream'
>>>          ... 18 levels...
>>>         from /usr/lib/ruby/1.8/soap/wsdlDriver.rb:70:in `import'
>>>         from /usr/lib/ruby/1.8/soap/wsdlDriver.rb:34:in `initialize'
>>>         from ./ncbi_soap.rb:8:in `new'
>>>         from ./ncbi_soap.rb:8
>>>
>>> I'll pursue this on our end but if you have any ideas, let me know.
>>>
>>>
>>> David
>>>
>>>
>>> -----Original Message-----
>>> From: bioruby-bounces at portal.open-bio.org
>>> [mailto:bioruby-bounces at portal.open-bio.org] On Behalf Of Moses 
>>> Hohman
>>> Sent: Friday, December 10, 2004 2:21 AM
>>> To: bioruby at portal.open-bio.org
>>> Cc: BioRuby Project Discussion List
>>> Subject: Re: [BioRuby] esoap.rb
>>>
>>> I get a different error:
>>>
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in 
>>> `initialize':
>>> Can't assign requested address - connect(2) (Errno::EADDRNOTAVAIL)
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in
>>> `new'
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in
>>> `create_socket'
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1252:in
>>> `connect'
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in
>>> `timeout'
>>>          from /usr/local/lib/ruby/1.8/timeout.rb:55:in `timeout'
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in
>>> `connect'
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1111:in
>>> `query'
>>>          from 
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:833:in
>>> `query'
>>>           ... 26 levels...
>>>          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:71:in 
>>> `import'
>>>          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:35:in
>>> `initialize'
>>>          from test_eruby.rb:12:in `new'
>>>
>>> The full backtrace is after the rest of my message.
>>>
>>> This seems to have something to do with the fact that eutils.wsdl has
>>> <wsdl:import> tags with locations that don't specify a base URL or
>>> something
>>> (I'm not very familiar with WSDL). soap4r apparently can't handle
>>> this, or
>>> maybe there's an option one has to set that I don't know. If you curl
>>> the
>>> various imported XSD files, the error goes away and a new error 
>>> occurs:
>>>
>>> /usr/local/lib/ruby/1.8/wsdl/xmlSchema/element.rb:76:in `parse_attr':
>>> NotImplementedError (NotImplementedError)
>>>          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:142:in
>>> `decode_tag'
>>>          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:122:in
>>> `each'
>>>          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:122:in
>>> `decode_tag'
>>>          from /usr/local/lib/ruby/1.8/wsdl/xmlSchema/parser.rb:79:in
>>> `start_element'
>>>          from /usr/local/lib/ruby/1.8/xsd/xmlparser/parser.rb:67:in
>>> `start_element'
>>>          from
>>> /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:139:in
>>> `on_stag_end'
>>>          from
>>> /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:134:in
>>> `on_stag_end_empty'
>>>          from
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:470:in
>>> `on_stag_end_empty'
>>>           ... 28 levels...
>>>          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:71:in 
>>> `import'
>>>          from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:35:in
>>> `initialize'
>>>          from test_eruby.rb:12:in `new'
>>>          from test_eruby.rb:12
>>>
>>>
>>> I'm running 1.8.2 preview 3 on OS X 10.3.6. I've also installed a ton
>>> of
>>> ruby stuff, so it's possible my setup's errors will be unique : )
>>>
>>> Moses
>>>
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in 
>>> `initialize'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in `new'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1283:in
>>> `create_socket'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1252:in `connect'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in `timeout'
>>> /usr/local/lib/ruby/1.8/timeout.rb:55:in `timeout'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1251:in `connect'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:1111:in `query'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:833:in `query'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:383:in 
>>> `do_get_block'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:327:in 
>>> `conn_request'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:259:in `request'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:234:in `get'
>>> /usr/local/lib/ruby/site_ruby/1.8/http-access2.rb:209:in 
>>> `get_content'
>>> /usr/local/lib/ruby/1.8/wsdl/importer.rb:39:in `import'
>>> /usr/local/lib/ruby/1.8/wsdl/importer.rb:20:in `import'
>>> /usr/local/lib/ruby/1.8/wsdl/import.rb:65:in `import'
>>> /usr/local/lib/ruby/1.8/wsdl/import.rb:49:in `parse_attr'
>>> /usr/local/lib/ruby/1.8/wsdl/parser.rb:143:in `decode_tag'
>>> /usr/local/lib/ruby/1.8/wsdl/parser.rb:126:in `each'
>>> /usr/local/lib/ruby/1.8/wsdl/parser.rb:126:in `decode_tag'
>>> /usr/local/lib/ruby/1.8/wsdl/parser.rb:81:in `start_element'
>>> /usr/local/lib/ruby/1.8/xsd/xmlparser/parser.rb:67:in `start_element'
>>> /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:139:in
>>> `on_stag_end'
>>> /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:134:in
>>> `on_stag_end_empty'
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:470:in
>>> `on_stag_end_empty'
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:794:in 
>>> `scan_stag'
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:826:in
>>> `scan_content'
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:1051:in
>>> `scan_prolog'
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:1058:in
>>> `scan_document'
>>> /usr/local/lib/ruby/site_ruby/1.8/xmlscan/scanner.rb:1073:in `parse'
>>> /usr/local/lib/ruby/1.8/xsd/xmlparser/xmlscanner.rb:25:in `do_parse'
>>> /usr/local/lib/ruby/1.8/wsdl/parser.rb:62:in `parse'
>>> /usr/local/lib/ruby/1.8/wsdl/importer.rb:43:in `import'
>>> /usr/local/lib/ruby/1.8/wsdl/importer.rb:20:in `import'
>>> /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:71:in `import'
>>> /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:35:in `initialize'
>>> test_eruby.rb:12:in `new'
>>>
>>>
>>> On Dec 9, 2004, at 10:53 PM, Toshiaki Katayama wrote:
>>>
>>>> Hi,
>>>>
>>>> I have not completed esoap.rb yet. :)
>>>>
>>>> It seems that wsdl:import fails when loading eutils.wsdl in Ruby 
>>>> 1.8.1
>>>> (comes with SOAP4R).  Any ideas?
>>>>
>>>> Regards,
>>>> Toshiaki Katayama
>>>>
>>>> esoap_test.rb:
>>>> -------------------------
>>>> #!/usr/bin/env ruby
>>>>
>>>> require 'soap/wsdlDriver'
>>>>
>>>> wsdl = 
>>>> "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/soap/eutils.wsdl"
>>>>
>>>> driver = SOAP::WSDLDriverFactory.new(wsdl).create_driver
>>>> -------------------------
>>>>
>>>> % ruby esoap.rb
>>>> /usr/local/lib/ruby/1.8/soap/netHttpClient.rb:121:in
>>>> `create_connection': Cannot connect to egquery.xsd (Not HTTP.)
>>>> (RuntimeError)
>>>>         from /usr/local/lib/ruby/1.8/soap/netHttpClient.rb:91:in
>>>> `start'
>>>>         from /usr/local/lib/ruby/1.8/soap/netHttpClient.rb:82:in
>>>> `get_content'
>>>>         from /usr/local/lib/ruby/1.8/wsdl/importer.rb:39:in `import'
>>>>         from /usr/local/lib/ruby/1.8/wsdl/importer.rb:20:in `import'
>>>>         from /usr/local/lib/ruby/1.8/wsdl/import.rb:65:in `import'
>>>>         from /usr/local/lib/ruby/1.8/wsdl/import.rb:49:in 
>>>> `parse_attr'
>>>>         from /usr/local/lib/ruby/1.8/wsdl/parser.rb:141:in
>>>> `decode_tag'
>>>>         from /usr/local/lib/ruby/1.8/wsdl/parser.rb:124:in `each'
>>>>          ... 9 levels...
>>>>         from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:69:in 
>>>> `import'
>>>>         from /usr/local/lib/ruby/1.8/soap/wsdlDriver.rb:33:in
>>>> `initialize'
>>>>         from esoap_test.rb:5:in `new'
>>>>         from esoap_test.rb:5
>>>>
>>>>
>>>>
>>>> On 2004/12/10, at 7:51, Moses Hohman wrote:
>>>>
>>>>> It would be great if you could help out. esoap.rb is not in CVS, so
>>>>> Toshiaki will have to email it : )
>>>>>
>>>>> Moses
>>>>>
>>>>> On Dec 9, 2004, at 4:35 PM, david wheeler wrote:
>>>>>
>>>>>> Hi:
>>>>>>
>>>>>> Is it still true that esoap.rb is not working? Is the current
>>>>>> version available?  If so, I'd be happy to help if I could get a
>>>>>> copy.
>>>>>>
>>>>>> David Wheeler, NCBI
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> BioRuby mailing list
>>>>>> BioRuby at open-bio.org
>>>>>> http://portal.open-bio.org/mailman/listinfo/bioruby
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> BioRuby mailing list
>>>>> BioRuby at open-bio.org
>>>>> http://portal.open-bio.org/mailman/listinfo/bioruby
>>>>
>>>> _______________________________________________
>>>> BioRuby mailing list
>>>> BioRuby at open-bio.org
>>>> http://portal.open-bio.org/mailman/listinfo/bioruby
>>>>
>>>
>>> _______________________________________________
>>> BioRuby mailing list
>>> BioRuby at open-bio.org
>>> http://portal.open-bio.org/mailman/listinfo/bioruby
>>>
>>>
>>> _______________________________________________
>>> BioRuby mailing list
>>> BioRuby at open-bio.org
>>> http://portal.open-bio.org/mailman/listinfo/bioruby
>>
>> _______________________________________________
>> BioRuby mailing list
>> BioRuby at open-bio.org
>> http://portal.open-bio.org/mailman/listinfo/bioruby
>>
> _______________________________________________
> BioRuby mailing list
> BioRuby at open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioruby
>



More information about the BioRuby mailing list