Dinesh Premalal wrote:
Hi Subra,
"Subra A Narayanan" <[EMAIL PROTECTED]> writes:
So the solution looks like writing an Apache module (I have never written one
before) which receives the REST request, translates the request to a SOAP
request and then forwards it on to Axis2/c. But this is exactly what Axis2/C is
also doing.
Yes, that is also a possibility. However I think it will be quite
arduous to maintain two apache modules in the long run. I would rather like improving Axis2/C REST support.
I too think that it would be much simpler to improve the current REST support rather than to implement another Apache module.

If you look at the apache module implementation, in source file src/core/transport/http/server/apache2/apache2_worker.c, there is a method named axis2_apache2_worker_process_request. If you have a look at this, then you can understand how GET and POST requests are dealt with and in turn, this function calls the methods axis2_http_transport_utils_process_http_get_request and axis2_http_transport_utils_process_http_post_request methods deal with detailed request processing, including REST stuff. So if you want PUT and DELETE you can implement new functions like, axis2_http_transport_utils_process_http_put_request and axis2_http_transport_utils_process_http_delete_request. Also, if you want to deal with the media types, before control is passed on to Axis2/C, I hope you can do that within axis2_apache2_worker_process_request function, as you have access to the request information there. The above are just few suggestions, to use the current apache module code and improve that to deal with more REST stuff. However, I did not look into that in detail. If you try that and have more questions please feel free to ask this list.

Thanks,
Samisa...
I want to start looking in to improving REST support in Axis2/C. Is
it doable?
Yes, It is.
Am I missing something very obvious which would prevent us from implementing
such support in Axis2? If not please let me know as to where I should start
looking in the Axis2 source.
You could start at looking HTTP transport I guess. If you could debug
echo_rest sample, it will be helpful to understand the underlying
logic.
thanks,
Dinesh


--
Samisa Abeysinghe : WSO2 WSF/C
"http://wso2.org/projects/wsf/c?WSO2&nbsp;Web&nbsp;Services&nbsp;Framework/C&nbsp;-&nbsp;Open&nbsp;source&nbsp;C&nbsp;library&nbsp;for&nbsp;providing&nbsp;and&nbsp;consuming&nbsp;Web&nbsp;services";


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

Reply via email to