Hi, my recommendation is to the following:
a) invoke and verify that your external webservice using script/console
user_api = ActionWebService::Client::XmlRpc.new(UserApi, "http://localhost:3000/user/api/RPC2"
b) If (a) is working as expected, then you should read and follow the information in 25.7 of AWDwRv2.
If not, then you should follow an incremental development approach to correct the code:
code A test A debug A code A test A debug A and so on.
You may not need to debug in every case and you'll continue this process until you have completed the implementation. Why do it this way? It seems that you have implemented alot of code without testing it until the very end. Also, I have don't have time to do it for you and this is something that you need to learn.
Good luck,
-Conrad