Apache Camel:拆分后如何保留原始附件?

时间:2019-02-13 12:01:41

标签: apache-camel

我正在使用Split EIP,试图访问原始in消息中的所有附件,或者将所有原始in消息中的附件复制到子交换的in消息中。

我发现这可行,但是对我来说却很奇怪:

…
// Save attachments in some header:
.setHeader("savedAttachments", new Expression() {
    @Override
    public <T> T evaluate(final Exchange exchange, final Class<T> aClass) {
        return (T) exchange.getIn().getAttachments();
    }
})
.split(…)
// Restore attachments:
.process(exchange -> exchange.getIn().setAttachments((Map<String, DataHandler>) it.getIn().getHeader("savedAttachments")))
…

这是怎么做的?还是有更好的方法?

我还尝试了context.setAllowUseOriginalMessage(true);.split(…).shareUnitOfWork()exchange.getUnitOfWork().getOriginalInMessage().getAttachments()的几种组合,但是我无法以这种方式访问​​原始附件。

谢谢

约翰

0 个答案:

没有答案