Я использую EIP Split *1002*, пытаясь либо получить доступ ко всем вложениям из оригинала в сообщении, либо скопировать все вложения из оригинала в сообщении во входящее сообщение суб-обмена.
Я обнаружил, что это работает, но мне это кажется странным:
…
// 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()
, но я не мог получить доступ к исходным вложениям таким образом.
Спасибо
Джон