Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel CamelSplitter在失败时存储CamelSplitSize和处理的行_Apache Camel_Spring Dsl - Fatal编程技术网

Apache camel CamelSplitter在失败时存储CamelSplitSize和处理的行

Apache camel CamelSplitter在失败时存储CamelSplitSize和处理的行,apache-camel,spring-dsl,Apache Camel,Spring Dsl,[1] 从[1]链接中,我看到,大小将在已完成的交换上 我正在学习camel,我想知道是否有一种方法可以拆分包含100行的xml文件(假设为100行) 如果在处理第50行时分割失败,我们需要将CamelSplitIndex显示为50,CamelSplitSize显示为100,CamelSplitComplete显示为false .bean(Splitter.class,"saveFile("${camelContext.properties[mySplitSize]}, ${camelConte

[1]

从[1]链接中,我看到,大小将在已完成的交换上

我正在学习camel,我想知道是否有一种方法可以拆分包含100行的xml文件(假设为100行)

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

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

我找不到一种方法来实现这一点,因为链接[1]明确指出,大小将仅存储在已完成的交换上。实现此目的的任何方法???

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

 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"));
}