From: Dean Holdren Date: 2006-01-28T09:06:27+09:00 Subject: Re: Error 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 wrote: > thanks, I've tried using ActionWebService::Client::SOAP, but I get the > same error (pretty much), here's the version of the method within my > Controller that used ActionWebService: > > 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 = WeatherParametersType.new({: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}) > > soap_client = ActionWebService::Client::Soap.new(WeatherAPI, > "http://www.weather.gov/forecasts/xml/SOAP_server/ndfdXMLserver.php") > @dwml = soap_client.NDFDgen(lat, lon, 'time-series', starter, ender, params) > @data = @dwml > end > > and I'm using these classes I've defined: > > class WeatherParametersType < ActionWebService::Struct > member :maxt, :boolean > member :mint, :boolean > member :temp, :boolean > member :dew, :boolean > member :pop12, :boolean > member :qpf, :boolean > member :sky, :boolean > member :snow, :boolean > member :wspd, :boolean > member :wdir, :boolean > member :wx, :boolean > member :waveh, :boolean > member :icons, :boolean > member :rh, :boolean > member :appt, :boolean > end > > > class WeatherAPI < ActionWebService::API::Base > api_method :NDFDgen, :expects => [[Float], [Float], [String], [Time], > [Time], [WeatherParametersType]], :returns => [String] > end > > The error stack trace: > > SOAP::HTTPStreamError (502: Bad Gateway): > 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/gems/1.8/gems/actionwebservice-1.0.0/lib/action_web_s > ervice/client/soap_client.rb:61:in `perform_invocation' > c:/ruby-1.8.4/lib/ruby/gems/1.8/gems/actionwebservice-1.0.0/lib/action_web_s > ervice/client/base.rb:15:in `method_missing' > > On 1/26/06, Anthony Elizondo wrote: > > When you're playing with SOAP in Rails, I think you want to use > > ActionWebService. See: > > http://rails.rubyonrails.com/classes/ActionWebService/Client/Soap.html > > > > For Rails specific questions such as this, try the Rails mailing list, > > at http://lists.rubyonrails.org/mailman/listinfo/rails or > > http://www.ruby-forum.com/forum/3 > > > >