将春季批处理版本3.0.7升级到3.0.9时出现问题

时间:2018-09-04 13:29:17

标签: java maven spring-batch

我正在使用Spring Batch框架开发Java项目,必须将其从版本3.0.7升级到3.0.9,但是我遇到了问题:

@Bean
public Step bonjourRetourJpaToX(StepBuilderFactory stepBuilderFactory, TaskExecutor taskExecutor,
        ItemProcessor<BonjourRetourGroup, BonjourElementBlocAgent> compBonjourRetourBonjourProcessor,
        @Qualifier("promotionListenerBonjourRetour") ExecutionContextPromotionListener promotionListenerBonjourRetour) {
    return stepBuilderFactory.get("bonjourRetourJpaToX").<BonjourRetourGroup, BonjourElementBlocAgent>chunk(batchSizeLoadXml)
            .reader(bonjourRetourJpaReader)
            .processor(compBonjourRetourBonjourProcessor)
            .writer(bonjourRetourXmlWriter)
            .taskExecutor(taskExecutor)
            .listener(promotionListenerBonjourRetour)
            .listener(dsBonjourRetourFinalProcessor())
            .listener(dsBonjourRetourTemporaryProcessor)
            .listener(bonjourRetourBonjourBoucleStepListener())
            .throttleLimit(bonjourRetourJobThrottleLimit)
            .build();
}

出现Maven编译错误:

  

[错误] src / main / java / source / bonjourRetour / batch / BonjourRetourJobConfig.java:[1025,33]找不到符号     符号:方法油门限制(int)

此步骤是多线程的

1 个答案:

答案 0 :(得分:0)

对于Mahmoud Ben Hassine:

复合处理器->

@Scope(value = "step", proxyMode = ScopedProxyMode.NO)
@Bean(name = "compBonjourRetourBonjourProcessorX")
public ItemProcessor<BonjourRetourGroup, XElementBlocAgent> compBonjourRetourBonjourProcessorX(@Value("#{stepExecution}") final StepExecution stepExecution) {
    CompositeItemProcessor<BonjourRetourGroup, XElementBlocAgent> compositeProcessor = new CompositeItemProcessor<>();

    compositeProcessor
            .setDelegates(Arrays.asList(dsBonjourRetourXTemporaryProcessor, dsBonjourRetourXinalProcessor()));
    return compositeProcessor;
}

我注意到当我移动监听器时:bonjourRetourBonjourBoucleStepListener();像这样编译:

 @Bean
 public Step bonjourRetourJpaToX(StepBuilderFactory stepBuilderFactory, TaskExecutor 
 taskExecutor,
    ItemProcessor<BonjourRetourGroup, BonjourElementBlocAgent> compBonjourRetourBonjourProcessor,
    @Qualifier("promotionListenerBonjourRetour") ExecutionContextPromotionListener promotionListenerBonjourRetour) {
return stepBuilderFactory.get("bonjourRetourJpaToX").<BonjourRetourGroup, BonjourElementBlocAgent>chunk(batchSizeLoadXml)
        .reader(bonjourRetourJpaReader)
        .processor(compBonjourRetourBonjourProcessor)
        .writer(bonjourRetourXmlWriter)
        .taskExecutor(taskExecutor)
        .listener(promotionListenerBonjourRetour)
        .listener(dsBonjourRetourFinalProcessor())
        .listener(bonjourRetourBonjourBoucleStepListener())
        //SWITCHED
        .listener(dsBonjourRetourTemporaryProcessor)
        .throttleLimit(bonjourRetourJobThrottleLimit)
        .build();

我知道dsBonjourRetourTemporaryProcessor返回一个ItemProcessor,而bonjourRetourBonjourBoucleStepListener返回一个StepExecutionListener

对于我的项目中存在此问题的其他部分,当我移动StepExecutionListener时,它会起作用

也许问题在这里?