Jean-Sebastien Delfino wrote:
Hi,

I'm using the REST support in Axis2C 0.93 to invoke SCA services in Apache Tuscany, and it has been working pretty well so far. I now would like to customize a little how requests get dispatched to a particular service.

I am currently using the following URL: http://localhost:9090/axis2/services/customer?id=1234 to invoke my customer info Web service and pass to it customer id 1234, so far so good.

Now I would like to change this a little and invoke the customer info service using a slightly different URL: http://localhost:9090/axis2/services/customer/1234. Customer id 1234 is now specified as part of the path instead of a parameter. I still need a single service for all customers, and the ability to get the customer id in the Axis2 service skeleton.

Is this possible?
This is not possible as of now, as we are dependent on the '?' separation for parameters.
What do I need to put in my services.xml to enable this? and how will I get the part of the URL after customer/ in my Axis2 service skeleton?
Unfortunately we have not implemented a mechanism for this. In theory, you should be able to write your own dispatcher to get this done. e.g. see modules/core/engine/req_uri_disp.c. You write a custom dispatcher and include that extended dispatcher in "<phaseOrder type="inflow">" section's 'Dispatch' phase in axis2.xml. However we have not tested plugging in dispatchers. Alternatively, you can extend the logic in axis2_req_uri_disp_find_op method of modules/core/engine/req_uri_disp.c. and get the rest of the string after customer/ in the URI and set this as a property in the message context. Then, in the service skeleton, you can pull this property from the message context. I think this approach is simpler than to try and write a custom dispatcher.

Thanks,
Samisa...


Thanks...



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to