Camel Splitter存储CamelSplitSize并在处理失败时处理行

时间:2017-06-02 12:06:11

标签: apache-camel spring-dsl

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

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

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

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

     Case Date_Debut
     Range("$B$35").Select
     Externe_Picker_Start.Visible = True

我无法找到实现此目的的方法,因为链接[1]明确指出CamelSplitSize将仅存储在已完成的Exchang上。有没有办法实现这个?

1 个答案:

答案 0 :(得分: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"));
}