You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by jpcook01 <jo...@erars.plus.com> on 2012/08/07 13:02:56 UTC
Is it possible to get the originating request URL in a Custom
Response Handler?
Hi,
I had the following custom response handler for logging http error codes:
public class HttpErrorResponseLogger implements ResponseHandler {
private Logger log = Logger.getLogger("HttpErrorResponseLogger");
@Override
public Response handleResponse(Message message, OperationResourceInfo info,
Response response) {
int status = response.getStatus();
if(status > 399 && status < 600) {
Object method = message.get(Message.HTTP_REQUEST_METHOD);
Object url = message.get(Message.REQUEST_URL);
Object queryString = message.get(Message.QUERY_STRING);
log.error("Responding with HTTP status " +
response.getStatus() +" for "+ method + " " + url + "?" + queryString);
log.error("Responding with message body: " + response.getEntity());
}
return response;
}
}
The response code and entity are populated but the method, url and
queryString always return null. I wondered if it was possible to get the
originating request info just to log some extra information.
Thanks
Jon
--
View this message in context: http://cxf.547215.n5.nabble.com/Is-it-possible-to-get-the-originating-request-URL-in-a-Custom-Response-Handler-tp5712129.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Is it possible to get the originating request URL in a Custom
Response Handler?
Posted by jpcook01 <jo...@erars.plus.com>.
Thanks very much..
--
View this message in context: http://cxf.547215.n5.nabble.com/Is-it-possible-to-get-the-originating-request-URL-in-a-Custom-Response-Handler-tp5712129p5712178.html
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Is it possible to get the originating request URL in a Custom
Response Handler?
Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi
On 07/08/12 14:02, jpcook01 wrote:
> Hi,
>
> I had the following custom response handler for logging http error codes:
>
> public class HttpErrorResponseLogger implements ResponseHandler {
>
> private Logger log = Logger.getLogger("HttpErrorResponseLogger");
>
> @Override
> public Response handleResponse(Message message, OperationResourceInfo info,
> Response response) {
> int status = response.getStatus();
>
> if(status> 399&& status< 600) {
> Object method = message.get(Message.HTTP_REQUEST_METHOD);
>
> Object url = message.get(Message.REQUEST_URL);
> Object queryString = message.get(Message.QUERY_STRING);
> log.error("Responding with HTTP status " +
> response.getStatus() +" for "+ method + " " + url + "?" + queryString);
> log.error("Responding with message body: " + response.getEntity());
> }
>
> return response;
> }
>
> }
>
> The response code and entity are populated but the method, url and
> queryString always return null. I wondered if it was possible to get the
> originating request info just to log some extra information.
>
The response handler is using an out message, and those properties are
available on the in message, which you can access like this:
message.getExchange().getInMessage()
Alternatively, you can inject JAX-RS UriInfo + Request (the latter will
give an HTTP verb) or MessageContext
Cheers, Sergey
> Thanks
> Jon
>
>
>
> --
> View this message in context: http://cxf.547215.n5.nabble.com/Is-it-possible-to-get-the-originating-request-URL-in-a-Custom-Response-Handler-tp5712129.html
> Sent from the cxf-user mailing list archive at Nabble.com.
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com