This is some correspondance with Andrew Zeneski about setting up xmlrpc with Flex. I will eventually write this up as a howto! Thanks to all those that have contributed the code to the attached library. For details, browse the source...
Chris,
Here is how you use the lib to make connections:
var rpc:Connection = new ConnectionImpl(url);
rpc.addEventListener(ErrorEvent.ERROR, errorFunction);
rpc.addEventListener(Event.COMPLETE, completeFunction);
rpc.auth(username, password);
for (param:String in params) {
rpc.addParam(param, XMLRPCDataTypes.STRING);
}
rpc.call(method);
The source is included, let me know if you have any problems or
questions on this. I've hacked up the library somewhat to support some
a few non-standard things like auth and encrypting the entire message.
Encryption will require implementing the XMLCrypto class, but OFBiz
won't support this so I suggest just ignoring that.
In OFBiz the limitations are simple types. GenericValue object will
convert to Maps and be supported as Structs in XMLRPC, besides that
you should limit your parameters to simple types (string, double,
integer, map, list, etc). There is a xmlrpc event in webtools
(controller.xml) which allows you to call any service which has
export="true" specified.
The reason I like this more than SOAP is that it is much lighter
weight and fast. OFBiz has supported this for many years and it is
very stable. I don't think there is any docs (but check the doc site
just in case). Its really simple, the URL is the mount point for the
xmlrpc event (there is one in webtools by default). The method is the
name of the service. The parameters need to be in the same order as
they are defined in the service definition.
Let me know if you run into any issues and happy new year!
Andrew