Camel Splitter хранит CamelSplitSize и обрабатывает строки при сбое
http://camel.apache.org/splitter.html [1]
Из ссылки [1] я увидел, что CamelSplitSize будет на завершённой бирже.
Я изучаю верблюда, и я хотел бы знать, есть ли способ разделить XML-файл, содержащий 100 строк (при условии 100 строк)
Если разделение не удалось во время обработки 50-й строки, и нам нужно показать CamelSplitIndex как 50, CamelSplitSize как 100 и CamelSplitComplete как false
.bean(Splitter.class,"saveFile("${camelContext.properties[mySplitSize]}, ${camelContext.properties[mySplitIndex]}, ${camelContext.properties[mySplitComplete]})")
Я не смог найти способ сделать это, так как ссылка [1] ясно заявляет, что CamelSplitSize будет храниться только на завершенном Exchang. Есть ли способ добиться этого?
1 ответ
Если вам нужны эти свойства, вы можете перехватить исключение, которое вызывает остановку сплиттера, и получить обмен, вызвавший исключение. Там вы найдете свои свойства.
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"));
}