Page 1 of 1

Ich versuche also, eine CSV -Datei basierend auf einer Liste zu generieren, die ich aus meiner Datenbank abrufe. Alles s

Posted: 24 Feb 2025, 11:02
by Anonymous
@Override
public void configure(){
rest("/camel/loss-events")
.get("/csv-download")
.to("direct:generateCsv");
< /code>
CsvDataFormat csv = new CsvDataFormat();
csv.setDelimiter(getCsvParameterDelimiter().charAt(0));
from("direct:generateCsv")
.process(exchange -> {
List lossEventList= Optional.ofNullable(bean.getLossEventEList()).orElse(Collections.emptyList());
List csvData = new ArrayList();
csvData.add(getHeaders());
csvData.addAll(convertLossEventsToCsvRows(lossEventList));
exchange.setProperty("csvData", csvData);
exchange.getIn().setBody(csvData);
})
.marshal().csv()
.setHeader("Content-Type", constant("text/csv; charset=UTF-8"))
.setHeader("Content-Disposition", constant("attachment; filename=Loss_Events.csv"))
.to("stream:out");
}
< /code>
I tried to generate the csv file based on a certain delimiter that i retrieve from my database. I debugged and the csvParameterDelimiter() retrieves a semicolon ';' of char type which is what i want. When i marshal it seems that the default attributes of CsvDataFormat are set instead of the ones i am trying to set.