Было бы хорошо, если бы мы все знали, какой номер строки кода вызвал исключение.
Я подозреваю, что причиной вашей первой строки является код. Объектная ячейка может быть нулевой, а нулевой адрес не может быть преобразован в тип String. Вы можете проверить по коду.
Примечание. Хорошо, что код работает с Office 2010, но я думаю, что этот тип проблемы может произойти в любой версии Excel.
Я получил следующее решение:
.split(body().tokenize("\n", 1_000, false))
.streaming()
.process(exchange -> {
String[] body = exchange.getIn().getBody(String.class).split("\n");
var records = new ArrayList<FooBar>(body.length);
for(String line: body) {
records.add(objectMapper.readValue(line, FooBar.class));
}
exchange.getIn().setBody(records);
})
objectMapper
- com.fasterxml.jackson.databind.ObjectMapper
Например, файл размером 3,5 ГБ был обработан за ~ 1,2 мин.
Вы можете использовать jsonpath для разделения сообщений JSon (и включения потоковой передачи для больших сообщений в Splitter EIP)