@BeforeStep annoté méthode n'est pas appelée
Je suis en train d'écrire un ressort par lot. Mais quand cette classe d'Archive qui implenets la tasklet interface chargé, de la méthode, en vertu de l'annotation @BeforeStep n'est pas appelée. Quelqu'un peut-il m'aider ?
Merci
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.Calendar;
import java.util.Locale;
import java.util.TimeZone;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import org.springframework.batch.core.JobExecution;
import org.springframework.batch.core.StepContribution;
import org.springframework.batch.core.StepExecution;
import org.springframework.batch.core.annotation.BeforeStep;
import org.springframework.batch.core.scope.context.ChunkContext;
import org.springframework.batch.core.step.tasklet.Tasklet;
import org.springframework.batch.item.ExecutionContext;
import org.springframework.batch.repeat.RepeatStatus;
public class Archive implements Tasklet{
@Override
public RepeatStatus execute(StepContribution arg0, ChunkContext arg1)
throws Exception {
System.out.println("in execute method :)");
return RepeatStatus.FINISHED;
}
@BeforeStep
public void retrieveInterstepData(StepExecution stepExecution){
JobExecution jobExecution = stepExecution.getJobExecution();
ExecutionContext jobContext = jobExecution.getExecutionContext();
}
}
Comment êtes-vous de la configuration de l'auditeur?
OriginalL'auteur Dheeraj | 2015-04-29
Vous devez vous connecter pour publier un commentaire.
Première solution peut être à l'extrait de
ExecutionContext
deexecute
méthode où vous avezChunkContext
et de faire avec lui ce que vous avez besoin.Deuxième solution de la mise en œuvre
StepExecutionListener
et remplacerbeforeStep
méthode. Vous aurez quelque chose comme:J'ai eu un problème similaire et nous avons corrigé comme ça. Quant à savoir pourquoi
@BeforeStep
n'est pas appelée sur tasklet mais c'est à l'intérieurreaders
,processors
etwriters
je ne suis pas sûr.OriginalL'auteur Nenad Bozic
Un troisième solution de le faire: vous avez probablement pas enregistré votre tasklet en tant qu'auditeur de sorte que le annoté méthode n'est pas appelée depuis le début. Vous pouvez fournir la tasklet de référence en tant qu'auditeur dans votre travail de définition xml comme ceci:
vous avez également d'annoter vous classe d'Archive avec:
C'est la vraie réponse: c'est donner l'information exacte, l'OP besoins.
OriginalL'auteur guilhermerama