Ich experimentiere, indem ich Camel dazu bringe, einige Dateioperationen durchzuführen und sie durch den Broker activeMQ zu leiten, ich habe dieses Projekt von einem Typen übernommen, der kürzlich gekündigt hat.
Was ich bisher erreicht habe:
%Vor%funktioniert bis zu dem Punkt, an dem die Route ohne Fehler ausgeführt wird, die Datei jedoch nicht in die lokale Datei kopiert wird.
Irgendwelche Ideen? .
Ja, Sie müssen die Option include / exclude / filter verwenden, wenn Sie Dateien basierend auf Mustern filtern wollen. Die Option fileName gilt für eine einzelne Datei.
Entfernen Sie in diesem Fall die Option fileName, und ersetzen Sie sie durch include=.*2280.xsl
. Beachten Sie, dass das Include auf regulären Java-Ausdrücken basiert. Daher verwenden wir Punkt-Stern , um Platzhalter anzugeben. Mehr Details hier: Ссылка . Die ftp-Komponente erbt 99% der Optionen der Dateikomponente, deshalb verweise ich auf die Dateiwiki-Seite.
Verwenden Sie die Option include
, die den regulären Java-Ausdruck verwendet:
Bitte beachten Sie die \
vor dem Punkt .
Alternativ verwenden Sie antInclude
:
Für diese Art der Filterung empfehle ich den GenericFileFilter
Bei der Implementierung des Namensabgleichs wird der folgende Code verwendet:
%Vor% So können Sie testen, welchen regulären Ausdruck Sie verwenden sollten. In Ihrem Fall denke ich, dass .*2280\.xsl
das ist, was Sie verwenden sollten.
Tags und Links regex apache apache-camel