Ich habe eine bz2 Dekomprimierer mit Hilfe der Apache commons-compress-Bibliothek implementiert, um bz2-Dateien mit camel unterhalb eines bestimmten Punktes in der Verzeichnisstruktur des Dateisystems zu dekomprimieren. Ich habe den Dateiname abgeholt, um aus dem CamelFileName-Header zu dekomprimieren, öffnete die Datei mit meinem Dekomprimierer und legte die dekomprimierte Datei zurück in das gleiche Verzeichnis. Es funktioniert gut. Die Methode process(), die den hier kopierten Dekompressor aufruft, wird gekürzt; Dieser Prozessor ist für alle notwendigen Dateien, die von einem Kamel Route aufgerufen:CamelFileName vs. Nachrichtentext, Dateioperation
public void process(Exchange exchange) throws Exception {
LOG.info(" #### BZ2Processor ####");
BZ2 bz2 = new BZ2();
String CamelFileName = exchange.getIn().getHeader("CamelFileName", String.class);
bz2.uncompress(CamelFileName);
}
Ich denke, dass es schöner gewesen wäre, wenn ich die Datei aus dem Nachrichtentext nehmen . Wie hättest du es so umgesetzt?
Danke. Muss ich den Stream schließen oder offen lassen und Camel wird sich darum kümmern? Am besten wäre es, wenn Sie Beispielcode posten könnten. – Tamas
Bitte sehen Sie meine Bearbeitung. –
Vielen Dank für die Post! Ich werde den Stream verwenden, da ich große Dateien habe. – Tamas