M
Mike Calder
Please bear with me, I'm a beginner, and I'm beginning to think, of very
little brain. I'm trying to run a few of the standard samples and look at
the code to learn Ruby.
Currently I'm on raabrowser. I think I've loaded all the dependencies, but I
get an error -
ruby raabrowser.rb
Loading devel/logger compatibility library...
/usr/local/lib/ruby/site_ruby/1.8/soap/streamHandler.rb:198:in `send_post':
404: Not Found (SOAP::HTTPStreamError)
from /usr/local/lib/ruby/site_ruby/1.8/soap/streamHandler.rb:93:in
`send'
from /usr/local/lib/ruby/site_ruby/1.8/soap/rpc/proxy.rb:108:in
`invoke'
from /usr/local/lib/ruby/site_ruby/1.8/soap/rpc/proxy.rb:117:in `call'
from /usr/local/lib/ruby/site_ruby/1.8/soap/rpc/driver.rb:195:in
`call'
from (eval):2:in `getProductTree'
from ./RAA.rb:23:in `__send__'
from ./RAA.rb:23:in `method_missing'
from raabrowser.rb:108:in `initialize'
from raabrowser.rb:131:in `new'
from raabrowser.rb:131
OK, I look at the stacktrace and follow the source code, it all makes sense
down to StreamHandler.
The code I have is in /usr/local/lib/ruby/site_ruby/1.8/soap/StreamHandler.rb:
line 93: send_post(conn_data, soapaction, charset)
ine 198: raise HTTPStreamError.new("#{ res.status }: #{ res.reason }")
So presumably I have to find a class definition of HTTPStreamError.
A grep of /usr/local/lib/ruby/site_ruby/1.8/soap gives:
grep "HTTPStreamError" *.rb
soap.rb:class HTTPStreamError < StreamError; end
soap.rb:class PostUnavailableError < HTTPStreamError; end
soap.rb:class MPostUnavailableError < HTTPStreamError; end
streamHandler.rb: raise HTTPStreamError.new("#{ res.status }:
#{ res.reason }")
so I look in soap.rb and find, sometime after a "module SOAP" declaration, so
we're looking in the right place, the following code:
which to my little brain includes a definition of the class we should be
looking for (SOAP::HTTPStreamError) and basically equivalences it to
StandardError (via SOAP::StreamError and SOAP::Error), which I presume is a
core class, so I try that:
ruby -e 'class HTTPStreamHandler < StandardError; end; p HTTPStreamHandler'
HTTPStreamHandler
Yup, that works.
so, the problem must be that soap.rb is not being included or is otherwise
failing?
But /usr/local/lib/ruby/site_ruby/1.8/soap/StreamHandler.rb has
which I presume points to /usr/local/lib/ruby/site_ruby/1.8/soap/soap.rb, and
there is no Load Error message or other indication that soap.rb contains bad
code.
What am I missing?
little brain. I'm trying to run a few of the standard samples and look at
the code to learn Ruby.
Currently I'm on raabrowser. I think I've loaded all the dependencies, but I
get an error -
ruby raabrowser.rb
Loading devel/logger compatibility library...
/usr/local/lib/ruby/site_ruby/1.8/soap/streamHandler.rb:198:in `send_post':
404: Not Found (SOAP::HTTPStreamError)
from /usr/local/lib/ruby/site_ruby/1.8/soap/streamHandler.rb:93:in
`send'
from /usr/local/lib/ruby/site_ruby/1.8/soap/rpc/proxy.rb:108:in
`invoke'
from /usr/local/lib/ruby/site_ruby/1.8/soap/rpc/proxy.rb:117:in `call'
from /usr/local/lib/ruby/site_ruby/1.8/soap/rpc/driver.rb:195:in
`call'
from (eval):2:in `getProductTree'
from ./RAA.rb:23:in `__send__'
from ./RAA.rb:23:in `method_missing'
from raabrowser.rb:108:in `initialize'
from raabrowser.rb:131:in `new'
from raabrowser.rb:131
OK, I look at the stacktrace and follow the source code, it all makes sense
down to StreamHandler.
The code I have is in /usr/local/lib/ruby/site_ruby/1.8/soap/StreamHandler.rb:
line 93: send_post(conn_data, soapaction, charset)
ine 198: raise HTTPStreamError.new("#{ res.status }: #{ res.reason }")
So presumably I have to find a class definition of HTTPStreamError.
A grep of /usr/local/lib/ruby/site_ruby/1.8/soap gives:
grep "HTTPStreamError" *.rb
soap.rb:class HTTPStreamError < StreamError; end
soap.rb:class PostUnavailableError < HTTPStreamError; end
soap.rb:class MPostUnavailableError < HTTPStreamError; end
streamHandler.rb: raise HTTPStreamError.new("#{ res.status }:
#{ res.reason }")
so I look in soap.rb and find, sometime after a "module SOAP" declaration, so
we're looking in the right place, the following code:
which to my little brain includes a definition of the class we should be
looking for (SOAP::HTTPStreamError) and basically equivalences it to
StandardError (via SOAP::StreamError and SOAP::Error), which I presume is a
core class, so I try that:
ruby -e 'class HTTPStreamHandler < StandardError; end; p HTTPStreamHandler'
HTTPStreamHandler
Yup, that works.
so, the problem must be that soap.rb is not being included or is otherwise
failing?
But /usr/local/lib/ruby/site_ruby/1.8/soap/StreamHandler.rb has
which I presume points to /usr/local/lib/ruby/site_ruby/1.8/soap/soap.rb, and
there is no Load Error message or other indication that soap.rb contains bad
code.
What am I missing?