Hi, I need to get the status code of a http/POST call that may fail, but that should never stop the route, but log the errors instead. But whatever solution I try, my route keeps failing as soon as I have a code 400+, and am never able to manage the return code:
/Failed delivery for (MessageId: topic_mmh.test.in_ID_myHost on ExchangeId: someId). On delivery attempt: 0 caught: org.apache.camel.component.http.HttpOperationFailedException: HTTP operation failed invoking http://www.google.fr/ju?throwExceptionOnFailure=false with statusCode: 405/ I have tried it two ways : According to camel-http doc <http://camel.apache.org/http.html> : from("direct:in") .process(fillInBodyWithHttpPostData) .setHeader(Exchange.HTTP_METHOD, constant("POST")) .setHeader(Exchange.HTTP_URI, constant("http://www.google.fr/ju")) // error 405 .setHeader(Exchange.HTTP_QUERY, constant("throwExceptionOnFailure=false")) .setHeader(Exchange.CONTENT_TYPE, constant("application/xml")) .enrich("http://dummyhost", new AggregationStrategy() { public Exchange aggregate(Exchange original, Exchange resource) { Integer code = resource.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class); if(code.intValue()==405){ logUtils.log(LoggingLevel.DEBUG, "erreur 405",runInDebugMode); } return resource; } }).to("mock:result"); An another way I tried before reading the doc: from("direct:in") .process(fillInBodyWithHttpPostData) .setHeader(Exchange.HTTP_METHOD, constant("POST")) .setHeader(Exchange.HTTP_URI, constant("http://www.google.fr/ju")) // error 405 .setHeader(Exchange.HTTP_QUERY, constant("throwExceptionOnFailure=false")) .setHeader(Exchange.CONTENT_TYPE, constant("application/xml")) .enrich("http://dummyhost") .process(processHttpReturnCode); // with processorCode // ... final Message in = exchange.getIn(); int responseCode = in.getHeader(Exchange.HTTP_RESPONSE_CODE, Integer.class); switch(responseCode){ case HttpStatus.SC_ACCEPTED : case HttpStatus.SC_CREATED : logUtils.log(LoggingLevel.DEBUG,"Return Code ok : " + Integer.toString(responseCode),runInDebugMode);break; default : logUtils.log(LoggingLevel.ERROR,"Return code KO : " + Integer.toString(responseCode),runInDebugMode);break; } // ... If any of you have a tip here, or could point out my mistake, she/he is welcome! Thanks in advance -- View this message in context: http://camel.465427.n5.nabble.com/camel-http-keeps-throwing-exception-regardless-of-throwExceptionOnFailure-value-tp5739143.html Sent from the Camel - Users mailing list archive at Nabble.com.