[prev in list] [next in list] [prev in thread] [next in thread]
List: axis-c-dev
Subject: Re: Rest enhancements
From: Uthaiyashankar <shankar () wso2 ! com>
Date: 2008-10-29 9:53:09
Message-ID: 49082FB5.1080908 () wso2 ! com
[Download RAW message or body]
Uthaiyashankar wrote:
> Hi,
>
> Thank you very much for the patch. Can you please create a jira in [1]
> and attach the patch file? Then it would be easy to manage and track it.
> When attaching the file, remember to select "Grant license to ASF for
> inclusion in ASF works (as per the Apache License
> <http://www.apache.org/licenses/LICENSE-2.0> §5) " option.
>
> Regards,
> Shankar.
[1] https://issues.apache.org/jira/browse/AXIS2C
>
> Luís Bilo wrote:
>> Hi,
>>
>> I've been also working on some enhancements for axis in order to
>> support some required features to our project. We are using axis2/c
>> module for apache instead of the standalone server, changes are not
>> tested for the standalone.
>>
>> #1 Adds http headers to msg_ctx when using axis2/c module for apache
>> I noticed however this functionality were only implemented for the
>> standalone server. When using the axis module for apache http headers
>> were not added to the msg_ctx so they were not accessible @ the inflow
>> handlers level for instance.
>>
>> #2 Adds forbidden definition tags for http forbidden code which is
>> missing in standard release
>>
>> #define AXIS2_HTTP_RESPONSE_FORBIDDEN_CODE_VAL 403
>> #define AXIS2_HTTP_RESPONSE_HTTP_FORBIDDEN_CODE_NAME "Forbidden"
>> #define AXIS2_HTTP_RESPONSE_HTTP_FORBIDDEN "403 Forbidden"
>>
>> #3 Adds support to specify feedback for REST requests, when a module
>> failure occurs.
>>
>> This issue is related to the difference between soap and rest
>> requests. When an inflow handler fails two things can happen depending
>> on the request type:
>>
>> - For SOAP requests, the inflow handler chain is broken, and all the
>> outflow fault handlers are invoked. The response soap envelope
>> response containing a default fault is built by axis in between these
>> phases, so we can edit the fault accordingly @ the outflow fault
>> handlers.
>> - For REST requests, the inflow handler chain is also broken, but the
>> outflow fault handlers are not invoked. This is not a problem, and is
>> probably intended, since unlike soap there is no need to create a soap
>> envelope. The thing is when this happens it always returned 202
>> ACCEPTED, which is not enough to provide any feedback to the user who
>> made the request.
>>
>> @ the inflow handler is now possible to set the desired status code
>> desired for the response, extra http headers, and/or http content. It
>> was already possible before, changes just weren't propagated to the
>> actual response.
>>
>> inflow handler example with the patch:
>> ..
>> // For REST requests
>> if (doing_rest && AXIS2_FAILURE == result)
>> {
>>
>> axis2_msg_ctx_set_status_code(msg_ctx, env,
>> AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED_CODE_VAL);
>> AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI,
>> "[Inflow][authentication_in]
>> HTTP status code unauthorized");
>>
>> axutil_stream_t *stream = axutil_stream_create_basic(env);
>> axis2_char_t *http_content = axutil_strcat(env,
>> AXIS2_HTTP_RESPONSE_HTTP_UNAUTHORIZED, "\n", NULL);
>> axutil_stream_write(stream, env, http_content,
>> axutil_strlen(http_content));
>> axis2_msg_ctx_set_transport_out_stream(msg_ctx, env,
>> stream);
>> }
>>
>> return result;
>> }
>>
>> I think these features may also be of interest for axis2/c users, at
>> least for us they seemed important, and would be nice to to have to
>> patch these to each new release of axis. The diff's follow in
>> attachment.
>>
>> Regards,
>> Luís Bilo
>>
>> ------------------------------------------------------------------------
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-c-dev-help@ws.apache.org
>
>
--
S.Uthaiyashankar
Software Architect
WSO2 Inc.
http://wso2.com/ - "The Open Source SOA Company"
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic