2016-12-14 3 views
0

У меня есть следующий верблюда маршрут:Camel Бинди маршал в файл создает несколько строки заголовка

from(inputDirectory) 
    .unmarshal(jaxb) 
    .process(jaxb2CSVDataProcessor) 
    .split(body()) //because there is a list of CSVRecords 
    .marshal(bindyCsvDataFormat) 
    .to(outputDirectory); //appending to existing file using "?autoCreate=true&fileExist=Append" 

для моей модели класса CSV Я с использованием аннотаций:

@CsvRecord(separator = ",", generateHeaderColumns = true) 
... 

и для свойств

@DataField(pos = 0) 
... 

Моя проблема заключается в том, что заголовки добавляются каждый раз, когда добавляется новая запись csv.

Есть ли не грязный способ контролировать это? Я что-то пропустил?

+0

- это заголовки, прилагаемые к каждой записи или к использованному файлу? – dimitrisli

+0

Для каждой записи. – theo

+1

Это ожидается, потому что вы называете маршала в сплиттере. Попробуйте без сплиттера. –

ответ

0

В итоге я добавил процессор, который проверяет, существует ли файл csv непосредственно перед предложением «Кому». Там я делаю манипуляции с массивом байтов и удаляю заголовки.