有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java问题将spring批处理版本3.0.7升级到3.0.9

我正在使用Spring Batch framework开发一个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编译错误:

[ERROR] src/main/java/source/bonjourRetour/batch/BonjourRetourJobConfig.java:[1025,33] cannot find symbol symbol: method throttleLimit(int)

这个步骤是多线程的


共 (1) 个答案

  1. # 1 楼答案

    对于马哈茂德·本·哈辛:

    复合处理器->

    @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;
    }
    

    我注意到当我移动听众时:BonjourTourBonjourBonjourBoucleStepListener();就像它编译的那样:

     @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();
    

    我知道DSBonjourTourTemporary Processor返回一个ItemProcessor,而BonjourTourBonjourBonjourBonjourBonjourBonjourBonjourBonjourBonucleStepListener返回一个StepExecutionListener

    对于我的项目中有这个问题的其他部分,当我移动StepExecutionListener时,它是有效的

    也许问题就在这里