我正在使用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()
的几种组合,但是我无法以这种方式访问原始附件。
谢谢
约翰