I'll give this a shot. Can you give me a quick example or point me to a sample that does something similar (ex. setting a header in code, performing conditional logic in a route based on a header).
-JF Allen Lau-2 wrote: > > I could be wrong here, but you could easily stick the "error" object as > part > of the message header. As long as your components > understand that header, you can easily retrieve it and only send that > portion to an error queue. > > The default message headers in Camel is defined as > > Map<String, Object> headers; > > so basically you can stuff whatever you want into it. > > > On Tue, Mar 23, 2010 at 4:02 PM, jfaath <jfa...@apache.org> wrote: > >> >> I'm not sure that would work. As I stated in my original post, I don't >> want >> to send the entire message to the error queue, just the portion that was >> invalid. So, if my original message has, say, 11 readings, and 3 of them >> are bad, I only want to send the 3 bad ones to the error queue. During >> processing, I stick the bad readings into an "error object". It's the >> contents of this object (that I can easily marshal to XML) that I want to >> send to the queue. >> >> FYI, here is a simplified version of my route: >> >> >> from("jetty:http://0.0.0.0:8282/process").convertBodyTo(String.class) >> .inOnly("jms:queue:data.inbound") >> .unmarshal(jaxbDf) >> .beanRef("dataProcessor", "process") >> >> >> Allen Lau-2 wrote: >> > >> > How about just setting a header when you are done processing and there >> is >> > an >> > error? >> > >> > Then in your route, just send any message to the error queue when the >> > header >> > is detected. >> > >> > On Tue, Mar 23, 2010 at 11:57 AM, jfaath <jfa...@apache.org> wrote: >> > >> >> >> >> I'm looking for some advice on how to deal with errors during a large >> >> processing task. It seems like it should be simple but I'm having >> >> trouble >> >> figuring out what to do. >> >> >> >> I have an HTTP endpoint that receives XML messages then sticks them in >> a >> >> processing queue. From the queue, they get unmarshalled into JAXB >> >> objects >> >> and then processed by a Java class. Now, the messages consist or a >> large >> >> number of readings. Some may be good, some may be bad. The good ones >> >> get >> >> processed, but the bad ones are stuffed into a JAXB object. >> >> >> >> When the processing is done, I'd like to throw this object on an error >> >> queue >> >> (or, marshal then throw on the queue). But I can't figure out how to >> do >> >> this the best way. The processing class should exit gracefully so I >> >> don't >> >> want to throw a final exception. >> >> >> >> What might be the best way to do this? Can I add the error object to >> a >> >> queue programmatically within the processor? Can the processor return >> >> the >> >> error object so I can throw it on the queue via the route? Is there a >> >> nice >> >> and easy way to do this? >> >> >> >> Thanks, >> >> >> >> JF >> >> -- >> >> View this message in context: >> >> >> http://old.nabble.com/error-handling-advice-with-queues-tp28005566p28005566.html >> >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> >> >> >> > >> > >> >> -- >> View this message in context: >> http://old.nabble.com/error-handling-advice-with-queues-tp28005566p28008395.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> >> > > -- View this message in context: http://old.nabble.com/error-handling-advice-with-queues-tp28005566p28016879.html Sent from the Camel - Users mailing list archive at Nabble.com.