On Mon, Aug 3, 2009 at 2:19 PM, SoaMattH<[email protected]> wrote: > > > Your right it should be: > <camel:from ref="incidentFileEndpoint"></camel:from> > > I have changed it from ure to ref, > However when I test a poorly formed XML file the unmarshal > throws an exception but the file ends up in the .camel/ > processed directory rather than the deadletter/ directory?
Yes that is because you use doTry .. doCatch that works just as try .. catch in regular Java. So you handle the exception locally in the doCatch block. So even if you route the message to your own deal letter destination in the doCatch block Camel will afterwards think the file was processed with success and move the file to .camel sub folder as its done OK. You should just remove all the doTry .. doCatch and then rely on the Dead Letter Channel to move failed files to a dead letter destination instead. See more at: http://camel.apache.org/error-handling-in-camel.html http://camel.apache.org/dead-letter-channel.html And this for how to configure it in spring XML that you use http://camel.apache.org/error-handler.html > > Ny clues > > > > > SoaMattH wrote: >> >> >> I am Using Camel 2.0M3 in a spring Web application. >> >> I have the following camel context. >> Every thing works fine for an XML file that is parsed correctly >> However if an Exception occures it ends up in the processed folder >> rather than in the dead letter folder? >> >> Is there somthing I need to do to stop the processing amd leave the file >> in the >> dead letter folder ?? I would tend to think I am just missing a config? >> >> <!-- >> ===================================================================== --> >> <!-- Camel Context. >> --> >> <!-- >> ===================================================================== --> >> <camel:camelContext id="camel"> >> >> <camel:package> >> au.gov.qld.emergency.integration.oms >> </camel:package> >> >> <!-- >> =================================================================== --> >> <!-- Default JMX connector url: >> --> >> <!-- "service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel" >> --> >> <!-- >> =================================================================== --> >> <camel:jmxAgent id="agent" createConnector="true"/> >> >> <!-- >> =================================================================== --> >> <!-- Enpoints and processes >> --> >> <!-- >> =================================================================== --> >> <camel:endpoint id="incidentFileEndpoint" >> uri="file://#{omsws.incident.file.landingzone}/"/> >> >> <camel:dataFormats> >> <camel:jaxb id="incidentJaxb" >> prettyPrint="true" >> contextPath="com.myco.incident" /> >> </camel:dataFormats> >> >> <camel:route> >> <camel:from uri="incidentFileEndpoint"></camel:from> >> <camel:doTry> >> <camel:unmarshal ref="incidentJaxb" /> >> <camel:to uri="bean:incidentReciverFile?method=processIncident" >> /> >> <camel:doCatch> >> <camel:exception>java.lang.Exception</camel:exception> >> <camel:to uri="file://#{omsws.incident.file.deadletter}/"/> >> </camel:doCatch> >> </camel:doTry> >> </camel:route> >> </camel:camelContext> >> >> >> Thanks Matt >> > > -- > View this message in context: > http://www.nabble.com/Trying-to-put-a-file-in-a-dead-letter-folder-tp24783883p24789795.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
