Bonjour,
Tout d'abord voici ce que je cherche à faire :
Récupérer via FTP des fichiers XML "serveurFTP", les unmarshaller avec JAX-B et exécuter un Processor pour finalement archiver le fichier XML source.
Si traitement OK : archivage du fichier XML dans serveurFTP/ARCHIVE
Si traitement KO : archivage du fichier XML dans serveurFTP/ERREURS
Ci dessous la configuration de ma route Camel :
Le problème rencontré:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 String ftpOpts= "&delay=10000&recursive=false&filter=#transporteurFilter&delete=true&consumer.bridgeErrorHandler=true"; String routeEnCours = "ftp://"+getUrl()+"/"+getEnCoursDirectory()+"?username="+getUser()+"&password="+getPassword(); String routeErreur = "ftp://"+getUrl()+"/"+getErreurDirectory()+"?username="+getUser()+"&password="+getPassword(); String routeArchive = "ftp://"+getUrl()+"/"+getArchiveDirectory()+"?username="+getUser()+"&password="+getPassword(); // Redirection en cas d'erreur onException(Exception.class) .handled(true) .to(routeErreur); // Configuration de la route from(routeEnCours+ftpOpts) .unmarshal(dataFormat) .processRef("myProcessor") .to(routeArchive);
En cas d'erreur à n'importe qu'elle étape du workflow je veux que le fichier XML source soit déplacé du repertoire "encours" vers le repertoire "erreur". De même à la fin du traitement le fichier XML doit être déplacé dans "archive". MAIS selon à qu'elle étape on se situe on perd la notion de "fichier XML source", avant le unmarshalling on a un Stream, après le unmarshalling on a un objet Java, etc... Du coup ma stratégie me parait compromise.
Avez vous une idée de comment procéder ?
Partager