我正在从 CSV 文件中读取一些行,将它们转换为业务对象,将它们聚合成批次并将生成的聚合传递给 bean,这可能会抛出PersistenceException
. 不知何故像这样:
from(file:inputdir).split().tokenize("\n").bean(a).aggregate(constant(true), new AbstractListAggregationStrategy(){...}).completionSize(3).bean(b)
我有一个onException(Exception.class).handled(true).to("file:failuredir").log()
. 如果在 上发生异常bean(a)
,则一切都按预期处理:将错误的行inputdir/input.csv
写入failuredir/input.csv
。现在如果bean(b)
失败,Camel 似乎无法重建原始消息:
message.org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: target/failure/ID-myhostname-34516-1372093690069-0-7
尝试了各种尝试来使其正常工作,例如使用 HawtDBAggregationRepository,在我的 AggregationStrategy 中切换useOriginalMessage
和onException
传播异常,我没有想法。
我怎样才能实现bean(b)
可以看到的相同行为bean(a)
?