Did you ever figure out what was going on with this? I seem to have the same problem. Inside the action_controller_dispatcher.rb file the following code doesn't seem to be executed the first time the class loads:
base.add_web_service_api_callback do |klass, api| if klass.web_service_dispatching_mode == :direct klass.class_eval 'def api; dispatch_web_service_request; end' end end base.add_web_service_definition_callback do |klass, name, info> if klass.web_service_dispatching_mode == :delegated klass.class_eval "def #{name}; dispatch_web_service_request; end" elsif klass.web_service_dispatching_mode == :layered klass.class_eval 'def api; dispatch_web_service_request; end' end end
In cases where the class is cached, it never is executed, and never defines the api methods.