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 :
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>
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
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 :
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
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.

Merci pour vos pistes et retour.

Cdt,