What happened to ActionWebService

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

Jason,

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

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

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.