Bonjour
je cherche à capturer une exception lors du reader d'un Batch (Spring Batch 4.3.0 via configuration XML). Mais je n'y arrive pas.
Voici mon fichier job xml :
et le fichier reader.xml :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <step id="step_1"> <tasklet> <chunk reader="ItemReader" processor="ItemProcessor" writer="ItemWriter" commit-interval="1000"> </chunk> </tasklet> </step>
Code XML : 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 <bean id="ItemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step"> <property name="resource" value="#{jobParameters['inputResource']}"/> <property name="lineMapper" ref="LineMapper"/> </bean> <bean id="LineMapper" class="org.springframework.batch.item.file.mapping.DefaultLineMapper"> <property name="lineTokenizer" ref="LineTokenizer"/> <property name="fieldSetMapper" ref="FieldSetMapper"/> </bean> <bean id="LineTokenizer" class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer"> <property name="delimiter" value="|"/> <property name="names" value="val1, val2, val3 etc..."/> </bean> <bean id="FieldSetMapper" class="fr.cnamts.xxx.batch.xxx.step.reader.FiledSetMapper"/> // Classe Java récupérant les données lues pour instancier un objetBO
Mon problème lorsque le fichier en entrée comporte une erreur, j'ai cette trace en console :
Pourquoi le writer intervient alors que le reader plante avant ? J'aimerais capturer cette erreur au moment de la lecture et stopper le programme avec un message clair.22/10/2020.13:37:01 INFO ItemWriter.java from InputFileObject:56 : Ecriture des adherents en base table STCO_NME_STAU_FIC_ADH réalisé avec succés.
22/10/2020.13:37:01 ERROR Marshaller.java from InputFileObject:62 : Erreur dans le job: [org.springframework.batch.item.file.FlatFileParseException: Parsing error at line: 1 in resource=[URL [file:champs...]] sur le fichier xxxx.tmp
Merci pour vos pistes et retour.
Cdt,
Partager