使用骆驼聚合器接收多封电子邮件时遇到问题

Trouble receiving multiple emails with camel aggregator

我真的不确定如何正确表达,但我会尽力而为。

我想通过骆驼路线向 n 个收件人发送 n 封电子邮件,并让这 n 个收件人向发件人发送批准,这是通过在主题中使用世界 'approve' 来完成的,此时,我会触发一个进程。

这个任务的前半部分已经完成,因为发送电子邮件在Camel中是一个相对简单的任务。接收也是如此。我的问题在于我想在继续之前等待收到这 n 封电子邮件。

我正在使用这个代码来尝试完成后半部分。

from("imaps://imap.gmail.com?username=emailaddress@gmail.com&" + 
"password=RAW(password)&searchTerm.subject=approve")
.aggregate(header("*"), new UseLatestAggregationStrategy())
.completionSize(2)
.process(myProcess);

我知道这段代码不会完全满足我的要求,但这是我目前正在使用的代码。当我将 .jar 放入 ServiceMix

时出现 this 错误
org.apache.camel.CamelExchangeException: Invalid correlation key. Exchange[MailMessage:

我已经尝试查找错误,但没有得到多少有用的信息。很明显它来自 header 或聚合策略,但同样,我还没有找到对我的情况有用的东西。

有更好的方法吗?我觉得我的问题是因为没有完全理解骆驼的细微差别,所以很可能有一种 easier/better 方法来实现这一点。如果没有,我错过了什么?

如果我遗漏了任何有用的内容,我深表歉意。欢迎提问。

如果您希望将任何消息分组在一起,您可以使用常量作为关联键,例如:

.aggregate(constant(true), new UseLatestAggregationStrategy())