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
class DispatcherApi < ActionWebService::API::Base
api_method :ping
…
end
app/controllers
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.