Looking at the route the exception will be caught but you haven't marked it
as handled so after it runs your onException call, the exception will be
propagated back to the caller, which is a timer component. Im not sure what
the timer component will do with an exception. Id have to check the
documentation. If you want to mask it then add .handled(true) after the
onException() and before the processor.

*Robert Simmons Jr. MSc. - Lead Java Architect @ EA*
*Author of: Hardcore Java (2003) and Maintainable Java (2012)*
*LinkedIn: **http://www.linkedin.com/pub/robert-simmons/40/852/a39
<http://www.linkedin.com/pub/robert-simmons/40/852/a39>*


On Mon, Jun 16, 2014 at 5:43 PM, koritoss <[email protected]> wrote:

> Using camel 2.12.1.
>
> I am using timer component to send head request to a server uri as below.
>
>   RouteBuilder builder = new RouteBuilder() {
>     @Override
>       public void configure() {
>         from("timer://" + serverUrl + "?fixedRate=true&delay=0&period=" +
> period).routeId(routeId)
>           .onException(HttpOperationFailedException.class)
>             .process(new Processor() {
>               public void process(Exchange exchange) throws Exception {
>                 LOGGER.log(Level.INFO, "HttpOperationFailedException
> thrown);
>               }
>             })
>         .end()
>         .setHeader(Exchange.HTTP_METHOD, constant("HEAD"))
>         .to(serverUrl + "?httpClient.soTimeout=" + httpReadTimeOut +
> "&throwExceptionOnFailure=true")
>         .process(new StatusProcessor(serverUrl, facadeMonitorDao));
>     }
>   };
>
> According to http://camel.apache.org/http.html,
> - Response code is in the range 100..299, Camel regards it as a success
> response.
> - Response code is in the range 300..399, Camel regards it as a redirection
> response and will throw a HttpOperationFailedException with the
> information.
> - Response code is 400+, Camel regards it as an external server failure and
> will throw a HttpOperationFailedException with the information.
>
> Tracing the route,
> - I see HEAD request is sent to server,
> - Server responds with 302 response code which is "Moved Temporarily"
> - However, the HttpOperationFailedException is not thrown even when i set
> the throwExceptionOnFailure=true
> - Another HEAD request is set to redirect location
>
> See below log trace message:
>
> 22:17:40,594 DEBUG [org.apache.camel.component.http.HttpProducer] thread #2
> - timer://https://myserver.org/myserver) Executing http HEAD method
> 22:17:40,673 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "HEAD /myserver HTTP/1.1[\r][\n]"
> 22:17:40,673 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "user-agent: GIS ServerManager-PingService[\r][\n]"
> 22:17:40,674 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "firedTime: Mon Jun 16 22:17:40 UTC 2014[\r][\n]"
> 22:17:40,674 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "breadcrumbId: ID-nites-gis-dev-net-48451-1402955026229-3-9[\r][\n]"
> 22:17:40,674 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "Host: myserver.org[\r][\n]"
> 22:17:40,675 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "[\r][\n]"
>
> 22:17:41,724 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "HTTP/1.1 302 Moved Temporarily[\r][\n]"
> 22:17:41,724 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "HTTP/1.1 302 Moved Temporarily[\r][\n]"
> 22:17:41,725 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Date: Mon, 16 Jun 2014 22:17:47 GMT[\r][\n]"
> 22:17:41,725 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Location: /myserver/index.html[\r][\n]"
> 22:17:41,725 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Connection: close[\r][\n]"
> 22:17:41,725 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Content-Type: text/plain; charset=UTF-8[\r][\n]"
> 22:17:41,726 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "[\r][\n]"
>
> 22:17:41,804 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "HEAD /myserver/index.html HTTP/1.1[\r][\n]"
> 22:17:41,804 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "user-agent: GIS ServerManager-PingService[\r][\n]"
> 22:17:41,804 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "firedTime: Mon Jun 16 22:17:40 UTC 2014[\r][\n]"
> 22:17:41,804 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "breadcrumbId: ID-nites-gis-dev-net-48451-1402955026229-3-9[\r][\n]"
> 22:17:41,804 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "Host: myserver.org[\r][\n]"
> 22:17:41,805 DEBUG  thread #2 - timer://https://myserver.org/myserver) >>
> "[\r][\n]"
>
> 22:17:42,475 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "HTTP/1.1 200 OK[\r][\n]"
> 22:17:42,475 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "HTTP/1.1 200 OK[\r][\n]"
> 22:17:42,476 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Date: Mon, 16 Jun 2014 22:17:48 GMT[\r][\n]"
> 22:17:42,476 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Last-Modified: Thu, 19 Sep 2013 03:42:20 GMT[\r][\n]"
> 22:17:42,476 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Content-Type: text/html;charset=UTF-8[\r][\n]"
> 22:17:42,476 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Content-Length: 697[\r][\n]"
> 22:17:42,476 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "Connection: close[\r][\n]"
> 22:17:42,476 DEBUG  thread #2 - timer://https://myserver.org/myserver) <<
> "[\r][\n]"
> 22:17:42,477 DEBUG [org.apache.camel.component.http.HttpProducer] thread #2
> - timer://https://myserver.org/myserver) Http responseCode: 200
>
> What I would like to do is, prevent this auto redirect behavior by catching
> the exception but it fails to catch that HttpOperationFailedException.
> Please help.
>
>
>
> --
> View this message in context:
> http://camel.465427.n5.nabble.com/Disable-auto-redirect-tp5752391.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Reply via email to