简体   繁体   English

Spring Batch配置异常

[英]Spring Batch configuration exception

I have next spring batch configuration class: 我有下一个春季批处理配置类:

@Configuration
@EnableBatchProcessing
public class BatchJobConfiguration {

    @Autowired
    private JobBuilderFactory jobBuilderFactory;

    @Autowired
    private StepBuilderFactory stepBuilderFactory;

    @Bean
    public Step step1() {
        return stepBuilderFactory.get("step1")
                .tasklet(new Tasklet() {
                    public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) {
                        return null;
                    }
                })
                .build();
    }

    @Bean
    public Job job(Step step1) throws Exception {
        return jobBuilderFactory.get("job1")
                .incrementer(new RunIdIncrementer())
                .start(step1)
                .build();
    }
}

When I start my application I receive next exception: 当我启动我的应用程序时,我收到下一个异常:

Caused by: java.lang.ClassCastException: org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean$$EnhancerBySpringCGLIB$$65a19538 cannot be cast to org.springframework.batch.core.repository.JobRepository at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d.jobRepository() at org.springframework.batch.core.configuration.annotation.AbstractBatchConfiguration.jobBuilders(AbstractBatchConfiguration.java:58) at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d.CGLIB$jobBuilders$6() at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d$$FastClassBySpringCGLIB$$c6b630d7.invoke() at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java 造成原因:java.lang.ClassCastException:org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean $$ EnhancerBySpringCGLIB $$ 65a19538无法转换为org.springframework.batch.core.repository.JobRepository的org.springframework.batch。 org.springframework.batch.core.configuration.annotation.AbstractBatchConfiguration.jobBuilders(AbstractBatchConfiguration.java:58)的core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 14f7a80d.jobRepository()在org.springframework.batch.core.configuration .annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $ 14f7a80d.CGLIB $ jobBuilders $ 6()at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $ 14f7a80d $$ FastClassBySpringCGLIB $() org.springframework.context.annotation.ConfigurationClassEnhancer $ BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java)上的springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228) :312) at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration$$EnhancerBySpringCGLIB$$14f7a80d.jobBuilders() at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162) :312),位于org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 14f7a80d.jobBuilders()处,sun.reflect.NativeMethodAccessorImpl.invoke0(自然方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethod) org.springframework.beans.beans.factory.support.SimpleInstantiationStrategy.instantiate处java.lang.reflect.Method.invoke(Method.java:497)处sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)处的Java (SimpleInstantiationStrategy.java:162)

In pom.xml I have next dependency: 在pom.xml中,我有下一个依赖项:

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

Thanks in advance. 提前致谢。

JobRepository实例需要重命名,否则Spring上下文将找到不正确的候选对象以进行自动装配。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM