2013-07-26 38 views
0

这是我第一次使用Spring批次和我有一个例外:Spring Batch的配置的NoSuchMethodError异常

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'stepScope' defined in class path resource [org/springframework/batch/core/configuration/annotation/StepScopeConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.batch.core.scope.StepScope org.springframework.batch.core.configuration.annotation.StepScopeConfiguration.stepScope()] threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.batch.core.scope.StepScope.setAutoProxy(Z)V 
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:581) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1031) 
.... 

Caused by: java.lang.NoSuchMethodError: org.springframework.batch.core.scope.StepScope.setAutoProxy(Z)V 
at org.springframework.batch.core.configuration.annotation.StepScopeConfiguration.stepScope(AbstractBatchConfiguration.java:130) 

我不知道如何解决这个错误。我使用的是Java配置来定义工作,步骤,读卡器,处理器和作家:

public class SpringBatchTestJobConfig extends PersistenceSpringConfig { 

    @Autowired 
    private JobBuilderFactory jobBuilders; 

    @Autowired 
    private StepBuilderFactory stepBuilders; 

    @Bean 
    @StepScope 
    public FlatFileItemReader<EntiteJuridique> cvsReader(@Value("#{jobParameters[input.file]}") String input) 
    { 
    log.info("cvsReader"); 
    FlatFileItemReader<EntiteJuridique> flatFileReader = new FlatFileItemReader<EntiteJuridique>(); 
    flatFileReader.setLineMapper(lineMapper()); 
    flatFileReader.setResource(new ClassPathResource(input)); 
    return flatFileReader; 
    } 

@Bean 
    public ItemWriter<EntiteJuridiqueJPA> writer() 
    { 
    log.info("writer"); 
    JpaItemWriter<EntiteJuridiqueJPA> jpaWriter = new JpaItemWriter<EntiteJuridiqueJPA>(); 
    try 
    { 
     jpaWriter.setEntityManagerFactory(entityManagerFactory().nativeEntityManagerFactory); 

    } 
    catch (Exception exception) 
    { 
     log.debug(exception); 
    } 

    return jpaWriter; 
    } 

@Bean 
    public Job dataInitializer() 
    { 
    return jobBuilders.get("dataInitializer").start(step()).build(); 
    } 

@Bean 
    public Step step() 
    { 
    return stepBuilders.get("step").<EntiteJuridique, EntiteJuridiqueJPA> chunk(1).reader(cvsReader(null)).processor(processor()) 
     .writer(writer()).build(); 
    } 

任何线索,这个问题怎么样?

编辑:我使用

  • 弹簧核心3.2.2.RELEASE
  • 弹簧一批2.2.0.RELEASE
  • 弹簧一批基础设施2.2.0.RELEASE
  • 春季测试3.2.2.RELEASE
+0

所有的弹簧罐都是同一个版本吗? NoSuchMethodError是可疑的。 – enl8enmentnow

+0

我终于解决了我的问题。缺少罐子 – Dimitri

回答

0

我得到了同样的错误,我的解决方案是从我的依赖项中删除版本,它工作正常。

<dependency> 
    <groupId>org.springframework.batch</groupId> 
    <artifactId>spring-batch-core</artifactId> 
</dependency>