0

In the following Spring Batch sample I need to inject execution context into itemReaderStatement so that I can put an item there in order to use it in Step2.

    @Bean
    public Job sampleJob() {
        return new JobBuilder("sampleJob")
                .repository(jobRepository)
                .start(new StepBuilder("Step1")
                        .repository(jobRepository)
                        .transactionManager(transactionManager)
                        .chunk(1)
                        .reader(itemReaderStatement())
                        .writer(itemWriterStatement(null))
                        .build())
                .next(new StepBuilder("Step2")
                        .repository(jobRepository)
                        .transactionManager(transactionManager)
                        .chunk(1)
                        .reader(itemReader())
                        .writer(itemWriter())
                        .build())
                .build();
    }
    @Bean
    @JobScope
    public ItemWriter itemWriterStatement(@Value("#{jobExecutionContext}") ExecutionContext context) {
        return items -> items.forEach(item ->
        {
            context.put("item", item);
        });
    }



I am getting: EL1008E: Property or field 'jobExecutionContext' cannot be found on object of type 'org.springframework.beans.factory.config.BeanExpressionContext'

0 Answers0