2017-07-24 3 views
0

Ich muss eine Abfrage in db, um die Dateinamen aus einer Tabelle zu bekommen. Und dann muss ich den Inhalt von Dateien in einem Ordner/Verzeichnis lesen, indem ich die Dateinamen verwende, die ich von der Abfrage erhalten habe. Ich habe den Abfrageteil gemacht und die Liste der Dateinamen in Exchange unter Verwendung einer Bohne gespeichert. Aber ich frage mich, wie ich diese Dateinamen im Austausch verwenden kann, um den Inhalt der Datei zu lesen. Kannst du bitte helfen?Lesen von Dateiinhalt mit Dateiname von db in camel

+0

ich meine Antwort ein wenig erweitert .. hoffe, das hilft. –

Antwort

2

Sie können das Muster Inhalt enricher (http://camel.apache.org/content-enricher.html) und Camel 2,16 mit dynamischen Endpunkten, um den Inhalt einer Datei durch einen Pfad aus der Datenbank erhalten vorher zu laden.

AKTUALISIERT

Sie haben die pollEnrich zu verwenden (da Datei Komponente ist ein Polling Verbraucher) Dateien von uri zu verbrauchen, und Sie können einen Ausdruck (wie Simple) verwenden Sie den Dateinamen konfigurieren .

Sie können so etwas (nur für Camel-Version größer als 2,16) versuchen:

.pollEnrich("file:?fileName=${header.FILE_NAME}", 1000, new YourAggregationStrategy()) 
+0

Ich habe PollEnrich verwendet und es hat wie erwartet funktioniert. Danke vielmals. – praveenps

+0

@praveenps Sie sind herzlich willkommen! –