On Wed, Dec 2, 2009 at 13:33, Gene Amtower <[email protected]> wrote:

>  Good point, Derrell.  I did some evaluation of the Qooxdoo request code
> earlier this week to determine if the parameter list was fixed or variable,
> and it looked like the parameters were fixed and predictable.  Your comment
> gives me comfort that Oracle can handle the set of parameters in any RPC
> request without any parameter definition problems.
>
> On a semi-related note, Oracle does provide a method to send variable
> argument lists in web requests, but it involves prepending the target URL
> with an exclamation "!" character.  This causes the web module to move all
> request parameters into two arrays for parameter names and values, which you
> then define as incoming array parameters in the request procedure.  This
> provides a work around in Oracle to requests with unknown parameter lists,
> and the procedure then needs to parse through the two arrays to get any
> parameters as needed.  To use this capability, I could set the Qooxdoo
> request URL with a leading "!" character to activate this Oracle modplsql
> capability, but I don't know if there are any restrictions against a leading
> "!" in a Qooxdoo request URL.
>

Your server need not implement variable argument lists. It is your server
implementation that specifies how the authors of service methods must
implement their methods. If you state that each parameter in the request
will be passed as a separate parameter to a service method, and the
appropriate service method will be found first by name and then by parameter
signature, then so be it. Your service method authors will write an
appropriate overloaded method for each parameter signature they require.
OTOH, if you want to support variable argument lists, recognize that all of
the parameters in the request coming from the client are passed in an array,
so you could as easily do as the original PHP implementation did, and just
pass that whole array to the service method. One key disadvantage of this is
that it becomes much more difficult to provide introspection and be able to
tell the client, "This method requires three parameters, an integer, a
string, and finally a map containing members x and y." That information can
be ascertained in PHP by looking at the "javadoc" documentation in the
comment, but a true reflection API that looks at the declared parameters is
a far superior way to do it when such is available.

Derrell
------------------------------------------------------------------------------
Join us December 9, 2009 for the Red Hat Virtual Experience,
a free event focused on virtualization and cloud computing. 
Attend in-depth sessions from your desk. Your couch. Anywhere.
http://p.sf.net/sfu/redhat-sfdev2dev
_______________________________________________
qooxdoo-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to