Hello all,
I''m trying to figure out why ActionWebService (AWS) does not validate 
the input types of a xml-rpc call, although the agile book says it 
should validate them, its not working for me.
Here is the code I''m using:
class Report < ActionWebService::Struct
   member :max_age, :int
end
class Service::Monitor::TransactionsApi < ActionWebService::API::Base
   api_method :report,
              :expects => [{:data => Report}]
end
class Service::Monitor::TransactionsController < ApplicationController
   def report(data)
     # NB: Even though we have defined a api with the required
     #     format (the Report class), RoR ActionWebService still
     #     accepts invalid data as a hash.
     puts ''----------------------------------''
     p data
     puts ''----------------------------------''
   end
end
And this is the test program I''m using (in python):
import xmlrpclib
report_data = {
     ''max_age'': ''this should raise a XML-RPC
fault''
}
remote = 
xmlrpclib.ServerProxy(''http://localhost:3000/service/monitor/transactions/api'')
remote.Report(report_data)
I was expecting to have a XML-RPC fault when running this client, but it 
went fine, and the controller got a hash (and not a Report instance), so 
do we really have to check all argument types on the controller?  with 
something like:
raise ''invalid argument'' unless data.class == Report
or I''m missing something here?
What was the rationale for collecting invalid data to a hash instead of 
raising an exception?
BTW, I didn''t try SOAP, because the WSDL URL provided by AWS does not 
seem to work with a service API that has a ActionWebService::Struct 
input argument, is this the intended behaviour?
TIA,
Rui Lopes