0

http://camel.apache.org/splitter.html [1]

从 [1] 链接我看到 CamelSplitSize 将在已完成的 Exchange 上。

我正在学习骆驼,我想知道有没有办法拆分包含 100 行(假设 100 行)的 xml 文件

如果在处理第 50 行时拆分失败,我们需要将 CamelSplitIndex 显示为 50,CamelSplitSize 显示为 100,CamelSplitComplete 显示为 false

.bean(Splitter.class,"saveFile("${camelContext.properties[mySplitSize]}, ${camelContext.properties[mySplitIndex]}, ${camelContext.properties[mySplitComplete]})")

我找不到完成此操作的方法,因为链接 [1] 明确指出 CamelSplitSize 将仅存储在已完成的交换中。有什么办法可以做到这一点??

4

1 回答 1

0

如果您需要此属性,您可以捕获导致停止拆分器的异常并获取导致异常的交换。在那里你会找到你的财产。

 public void show(Exchange exchange) {
    CamelExchangeException camelExceptionCaught = (CamelExchangeException) exchange.getProperty("CamelExceptionCaught");
    System.out.println(camelExceptionCaught.getExchange().getProperty("CamelSplitSize"));
    System.out.println(camelExceptionCaught.getExchange().getProperty("CamelSplitComplete"));
    System.out.println(camelExceptionCaught.getExchange().getProperty("CamelSplitIndex"));
}
于 2017-06-05T12:13:09.727 回答