Dean Holdren
2006-Jan-26 16:50 UTC
[Rails] Calling a SOAP service from within a Rails controller
The following works fine as a standalone ruby program: ********************************************************************************************** t = Time.now starter = Time.local(t.year,t.mon, t.day) + (24 *3600) ender = starter + 7 * 24 *3600 lat = 40.352039 lon = -74.191961 require ''soap/wsdlDriver'' params = {:maxt => false, :mint => false, :temp => true, :dew => false, :pop12 => false, :qpf => false, :sky => false, :snow => false, :wspd => false, :wdir => false, :wx => false, :waveh => false, :icons => false, :rh => false, :appt => true} wsdl = "http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl" drv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver drv.wiredump_dev = STDOUT if $DEBUG dwml = drv.NDFDgen(lat, lon, ''time-series'', starter, ender, params) puts dwml require ''xsd/mapping'' data = XSD::Mapping.xml2obj(dwml).data ********************************************************************************************** However, when I try to call the same from within a ruby controller, I get: SOAP::HTTPStreamError in Weather_map#data 502: Bad Gateway The code in my controller is: ********************************************************************************************** def get_weather lat = params[:lat] lon = params[:lon] t = Time.now starter = Time.local(t.year,t.mon, t.day) + (24 *3600) ender = starter + 7 * 24 *3600 params = {:maxt => false, :mint => false, :temp => true, :dew => false, :pop12 => false, :qpf => false, :sky => false, :snow => false, :wspd => false, :wdir => false, :wx => false, :waveh => false, :icons => false, :rh => false, :appt => true} wsdl = "http://www.weather.gov/forecasts/xml/DWMLgen/wsdl/ndfdXML.wsdl" drv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver drv.wiredump_dev = STDOUT if $DEBUG dwml = drv.NDFDgen(lat, lon, ''time-series'', starter, ender, params) @data = XSD::Mapping.xml2obj(dwml).data end **********************************************************************************************
Adam Keys
2006-Jan-26 19:54 UTC
[Rails] Calling a SOAP service from within a Rails controller
On Jan 26, 2006, at 10:49 AM, Dean Holdren wrote:> > SOAP::HTTPStreamError in Weather_map#data > > 502: Bad GatewayDid you try grabbing this file with a web browser, wget, curl, open- uri, etc.? Sounds like there could be a problem with the remote server. Also, it looks like you''re going to be downloading the WSDL every time your controller runs. I''d download the WSDL and put it somewhere in your app so that you aren''t having to wait for that file every time. -- ~akk http://therealadam.com
Dean Holdren
2006-Jan-26 20:32 UTC
[Rails] Calling a SOAP service from within a Rails controller
On 1/26/06, Adam Keys <adam@therealadam.com> wrote:> On Jan 26, 2006, at 10:49 AM, Dean Holdren wrote: > > > > SOAP::HTTPStreamError in Weather_map#data > > > > 502: Bad Gateway > > Did you try grabbing this file with a web browser, wget, curl, open- > uri, etc.? Sounds like there could be a problem with the remote server.Yes I did, works fine within both a web browser, or as I stated before, within a standalone ruby program. The error occurs within the SOAP call, only when a rails controller is the client.> > Also, it looks like you''re going to be downloading the WSDL every > time your controller runs. I''d download the WSDL and put it > somewhere in your app so that you aren''t having to wait for that file > every time.OK, thanks, I will do that. but I''m more concerned with the error with SOAP call, here is the stack trace: SOAP::HTTPStreamError in Weather_map#data 502: Bad Gateway RAILS_ROOT: ./script/../config/.. Application Trace | Framework Trace | Full Trace c:/ruby-1.8.4/lib/ruby/1.8/soap/streamHandler.rb:200:in `send_post'' c:/ruby-1.8.4/lib/ruby/1.8/soap/streamHandler.rb:109:in `send'' c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/proxy.rb:170:in `route'' c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/proxy.rb:141:in `call'' c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call'' c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/driver.rb:232:in `nDFDgen'' c:/ruby-1.8.4/lib/ruby/1.8/soap/wsdlDriver.rb:117:in `NDFDgen''> > -- > ~akk > http://therealadam.com > > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >
Dean Holdren
2006-Jan-28 00:05 UTC
[Rails] Calling a SOAP service from within a Rails controller
well it turns out I was passing bad parameters to the service. weird response though... On 1/26/06, Dean Holdren <deanholdren@gmail.com> wrote:> On 1/26/06, Adam Keys <adam@therealadam.com> wrote: > > On Jan 26, 2006, at 10:49 AM, Dean Holdren wrote: > > > > > > SOAP::HTTPStreamError in Weather_map#data > > > > > > 502: Bad Gateway > > > > Did you try grabbing this file with a web browser, wget, curl, open- > > uri, etc.? Sounds like there could be a problem with the remote server. > > Yes I did, works fine within both a web browser, or as I stated > before, within a standalone ruby program. > > The error occurs within the SOAP call, only when a rails controller is > the client. > > > > > Also, it looks like you''re going to be downloading the WSDL every > > time your controller runs. I''d download the WSDL and put it > > somewhere in your app so that you aren''t having to wait for that file > > every time. > > OK, thanks, I will do that. but I''m more concerned with the error with > SOAP call, here is the stack trace: > > SOAP::HTTPStreamError in Weather_map#data > 502: Bad Gateway > RAILS_ROOT: ./script/../config/.. > > Application Trace | Framework Trace | Full Trace > c:/ruby-1.8.4/lib/ruby/1.8/soap/streamHandler.rb:200:in `send_post'' > c:/ruby-1.8.4/lib/ruby/1.8/soap/streamHandler.rb:109:in `send'' > c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/proxy.rb:170:in `route'' > c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/proxy.rb:141:in `call'' > c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/driver.rb:178:in `call'' > c:/ruby-1.8.4/lib/ruby/1.8/soap/rpc/driver.rb:232:in `nDFDgen'' > c:/ruby-1.8.4/lib/ruby/1.8/soap/wsdlDriver.rb:117:in `NDFDgen'' > > > > > > -- > > ~akk > > http://therealadam.com > > > > > > _______________________________________________ > > Rails mailing list > > Rails@lists.rubyonrails.org > > http://lists.rubyonrails.org/mailman/listinfo/rails > > >