Верблюд 4.5.0 или больше перерывов CSVDataFormatJAVA

Программисты JAVA общаются здесь
Anonymous
Верблюд 4.5.0 или больше перерывов CSVDataFormat

Сообщение Anonymous »

После обновления до 4.5.0 этот маршрут не снял сбой, когда данные просто не пройдут до Dotry, он разделил файл как одна строка на расщепление, а затем висит.
пробовал всю версию до 4.11.0 - вручную попыталась Unmashal Data in Processor , но бросает NPE в качестве CSVDataFormat.unmarshaller null npe npe npe npe npe nul nul null nul ntl ntl in nul in nul npe . 4.4.0. < /P>
CsvDataFormat csvDataFormat = new CsvDataFormat().setUseMaps(true);

from("file:" + rootDir + "/test/")
.log(LoggingLevel.INFO,"Start processing ${file:name}")
.unmarshal().pgp(pgpFileName,pgpUserId,pgpPassword)
.process(exchange -> { /* just to get csv header */
InputStream inputStream = exchange.getIn().getBody(InputStream.class);
try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))){
String header = bufferedReader.readLine();
exchange.getIn().setHeader("CSV_HEADER",header);
csvDataFormat.setHeader(header.split(",")); // exchange.getIn().getHeader("CSV_HEADER") + "\n" + exchange.getIn().getBody())
.doTry()
.unmarshal(csvDataFormat)
.process(requestFileService)
.doCatch(IOException.class)
//TODO: custom processing here...
.process(exchange -> log.error("caught in dotry: " + exchange.getIn().getBody())).stop()
.end()//end try/catch
.choice()
.when(simple("${property." + Exchange.SPLIT_COMPLETE + "} == true"))
.log(LoggingLevel.INFO, "Finished processing ${file:name}")
.end();


Подробнее здесь: https://stackoverflow.com/questions/796 ... dataformat

Вернуться в «JAVA»