L.S., In Camel too, the original file name is available in a message header. For Camel, it's called org.apache.camel.file.name. Have a look at http://camel.apache.org/file.html for more information about the Camel File component.
Regards, Gert Vanthienen ------------------------ Open Source SOA: http://fusesource.com Blog: http://gertvanthienen.blogspot.com/ 2009/3/24 jcamus <[email protected]>: > > Thanks for this answer... but not sure how to do it with camel (I mean how to > retriever > the initial filename into camel) ? > Regards > > > Gert Vanthienen wrote: >> >> L.S., >> >> The BinaryFileMarshaler is a way to allow ServiceMix to handle non-XML >> payloads. Since the NMR itself only support XML message bodies, we >> use an attachment to store the binary content. If you configure the >> BinaryFileMarshaler on a file sender endpoint, it expects that the >> MessageExchange contains an attachment with the name mentioned in the >> exception. This means you'll configure the BinaryFileMarshaler on the >> file poller as well or either add the attachment to the >> MessageExchange yourself. >> >> For your use case, one option would be to not use the ServiceMix file >> poller endpoint but rather use a Camel file endpoint instead. A Camel >> Exchange is capable of carrying arbitrary payloads. This way, you >> could handle every related to dealing with non-XML-payloads inside >> Camel. Once you ensured that the XML message is formatted correctly, >> you could then send the MessageExchange into the JBI NMR to do all >> your other processing. >> >> Regards, >> >> Gert Vanthienen >> ------------------------ >> Open Source SOA: http://fusesource.com >> Blog: http://gertvanthienen.blogspot.com/ >> >> >> >> 2009/3/23 jcamus <[email protected]>: >>> >>> Hi ! >>> I am having this error when I send a bad xml file (not a correct xml file >>> format) to the following architecture : >>> >>> filePoller(in) -> CamelRouting -> fileSender (ok) >>> (deadLetterManager -> fileSender (ko) >>> >>> The fileSender (ko) has a >>> org.apache.servicemix.components.util.BinaryFileMarshaler while >>> the filePoller (in) a the standard fileMarshaller. >>> >>> The stacktrace is the following : >>> >>> javax.jbi.messaging.MessagingException: Could not find attachment: >>> org.apache.servicemix.file.content >>> at >>> org.apache.servicemix.components.util.BinaryFileMarshaler.writeMessage(BinaryFileMarshaler.java:93) >>> at >>> org.apache.servicemix.file.FileSenderEndpoint.processInOnly(FileSenderEndpoint.java:86) >>> at >>> org.apache.servicemix.common.endpoints.ProviderEndpoint.process(ProviderEndpoint.java:102) >>> at >>> org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600) >>> at >>> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554) >>> at >>> org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510) >>> at >>> org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60) >>> at >>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620) >>> at >>> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172) >>> at >>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168) >>> at >>> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) >>> at java.lang.Thread.run(Thread.java:619) >>> >>> Why the fileSender(ko) which is binaryFileMarshaller need an attachment ? >>> >>> Regards. >>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/MessagingException%3A-Could-not-find-attachment%3A-org.apache.servicemix.file.content-tp22659556p22659556.html >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>> >>> >> >> >> ----- >> --- >> Gert Vanthienen >> http://gertvanthienen.blogspot.com >> > > -- > View this message in context: > http://www.nabble.com/MessagingException%3A-Could-not-find-attachment%3A-org.apache.servicemix.file.content-tp22659556p22676389.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > >
