camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Goodwin, Matthew" <>
Subject RE: CamelAwsSqsMessageAttributes header not appearing on messages in AWS SQS Queue - Camel 2.15.2
Date Sat, 26 Sep 2015 17:27:13 GMT
I'm sure this isn't your issue but I ran into a similar thing where I thought the CamelHttpResponseCode
was not being set. It turned out that when returning from the processing from my web svc call
Camel would ignore what I set in this header and would set it to 200.  Like I said it appeared
that things weren't being set but upon stepping through the code it turned out I was setting
it and then Camel was setting a default after. What resolved my issue was that after my call
returned (and Camel had done it's serialization, etc) I had to copy the response code (the was still set properly on the response) back into the
CamelHttpResponseCode header.  Probably not your issue but double check and see if Camel isn't
defaulting the  CamelAwsSqsMessageAttributes header somewhere in the processing pipeline.
Hope you get it resolved.



-----Original Message-----
From: scurtis-engineer []
Sent: Friday, September 25, 2015 2:54 PM
Subject: CamelAwsSqsMessageAttributes header not appearing on messages in AWS SQS Queue -
Camel 2.15.2

I have read seemingly every SO question response, and posted my own question there that no
one has answered up to this point, and I am about to tear my hair out in frustration! :)

Using Camel Blueprint, v. 2.15.2, I have a route defined in the XML in which I am attempting
to set the CamelAwsSqsMessageAttributes header in order to pass along some message metadata
to an SQS queue on the other end. This is running on a Servicemix v. 5.3.0 box. Here are a
couple of code snippets:

Note: in the errorAttributeList, I have tried all kinds of values because it wasn't clear
exactly what I should I be putting there. I have put "All, CustomErrorWhatnot, *",etc.

Here's the ErrorProcessor bean process method:

public void process(Exchange exchange) throws Exception {

        //reset the body
        String originalBody = exchange.getProperty("originalBodyFromQueue",
        //get the error
        String errorProp = exchange.getProperty("errorMessage",

        exchange.getIn().setBody(originalBody);"processing error for message with body: {}, and error:
{}", exchange.getIn().getBody(), errorProp);

        Map<String, String> msgAttrs = new HashMap<>();
        msgAttrs.put("SomeError", errorProp.replaceAll(":"," "));


The logging messages verify that the error message is there, the header is set appropriately
in the route once the process method has completed, and it exists on that end. But when I
view the message in the AWS console, the only header I see is breadcrumbId, like so:


Am I doing something wrong in the URI/setup in the route? Are the headers lost outside of
the context in which they are set? I have seen other posts that indicate that's the case with
*CUSTOM* message properties and headers, but it seems that Camel headers should persist. Please
help before all my hair is gone!

View this message in context:
Sent from the Camel - Users mailing list archive at


This email and any files transmitted with it are confidential and intended solely for the
use of the individual or entity to whom they are addressed. If you have received this email
in error please notify the system manager. This message contains confidential information
and is intended only for the individual named. If you are not the named addressee you should
not disseminate, distribute or copy this e-mail.

View raw message