What happened to ActionWebService


#1

I’m trying to build up a SOAP server using ActionWebService (customer’s
requirement). It took me a little while to remember that I had seen a
changeset removing actionwebservice from the default load path of Rails
(
http://dev.rubyonrails.org/changeset/6550). Now that I’m manually
requiring
AWS, it seems to be just plain broken. Besides seeing old documentation
that’s frankly very hard to understand in terms of what goes where, AWS
can’t find my API specification in the apis directory. Here’s what I’ve
got:

app/apis

  • dispatcher_api.rb

class DispatcherApi < ActionWebService::API::Base
api_method :ping

end

app/controllers

  • dispatcher_controller.rb

class DispatcherController < ApplicationController
web_service_api :dispatcher
end

According to the documentation, and from the code I’ve looked at, this
should work fine, but it doesn’t. I’ll look around more, but does anyone
know details on the state of AWS and why my code above doesn’t work?

Thanks

Jason


#2

Jason,

Can you specify the version of Rails. Is this happening in the
current 1.2.3 release or are you using Edge Rails?


#3

It’s Edge Rails:

About your application’s environment
Ruby version 1.8.6 (i386-mswin32)
RubyGems version 0.9.2
Rails version 1.2.3
Active Record version 1.15.3
Action Pack version 1.13.3
Action Web Service version 1.2.3
Action Mailer version 1.3.3
Active Support version 1.4.2
Edge Rails revision 6709
Application root C:/Development/project
Environment development
Database adapter mysql
Database schema version 1

and actually, I looked through the changeset again and did find why my
code
was erroring out. Rails also no longer loads up app/apis into the load
path.
I’m doing this now manually.

It seems that AWS is meant to eventually disappear altogether. Why is
ActiveResource replacing AWS instead of just being appended onto the
list?
Yes REST is the way to go, but some times we still need to make SOAP /
XML
RPC services.

Jason


#4

Jason,

It is my understanding that it is not really disappearing but rather
being moved to a plugin. Which could actually be a good thing. Then
you can include the plugin if, and only if, you are doing SOAP web
services. Rails 1.2+ is all about REST web services. So moving SOAP
to a plugin is not really a bad thing, assuming the plugin will be
maintained alongside the Rails core.