Вызвано: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [org.springframework.batch.core.configuration.annotation.JobBuilderFactory]: метод фабрики - исключение типа jobBuilders;Вложенное исключение - java.lang.ClassCastException:
org.springframework.batch.core.repository.support.JobRepositoryFactoryBean $$ EnhancerBySpringCGLIB $$ ba801bb9
. может быть передан в.core.repository.JobRepository в org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:185) в org.springframework.beans.factory.support.ConstructorResolver.jstanti6 (ConstructorResolver.jstanti)18 общих пропущенных фреймов. Причины: java.lang.ClassCastException: org.springframework.batch.core.repository.support.JobRepositoryFactoryBean $$ EnhancerBySpringCGLIB $$ ba801bb9 не может быть приведен к org.springframeworkreposit.rec.springframework.: 59) at org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 9641e37a.CGLIB $ jobBuilders $ 8 () в org.springframework.batch.core.confBBegBBBB$$ FastClassBySpringCGLIB $$ 19e6f1ca.invoke () в org.springframework.cglib.proxy.MethodProxy.invokeSuper (MethodProxy.java:244) в org.springframework.context.annotation.Confance_jjat org.springframework.batch.core.configuration.annotation.SimpleBatchConfiguration $$ EnhancerBySpringCGLIB $$ 9641e37a.jobBuilders ()
Попытка запустить пакетное задание с помощью Spring Boot 1011
Пытался сделать AJobConfig подклассом DefaultBatchConfigurer, но на самом деле он не работает.каким-то образом эта ошибка возникает независимо от того, добавляется ли @EnableBatchProcessing или нет.Попытался добавить @EnableBatchProcessing в MyApp.java и AJobConfig.java.
Буду признателен, если кто-нибудь может помочь указать, явно ли я что-то упустил?
Я использую Spring boot 2.1.8, Spring batch 4.1.2, Spring 5.1.6
@Configuration
public class BatchJobConfig {
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public JobExecutionListener myJobListener() {
return new MyJobExecutionListener();
}
}
@Configuration
public class MyJobConfig extends MyAbstractJobConfig {
@Override
@Bean
public String jobName() {
return "MYJOB";
}
@Bean("MYJOB")
public Job myJob() {
return newJobBuilder() //
.next(parms01Step())
.build();
}
@Bean("PARMS01")
public Step parms01Step() {
return newStepBuilder("PARMS01") //
.execute(Cblparmc.class, "zzzzz") //
.build();
}
}
batch-context.xml ничего не делает, только определяет заполнитель
<context:property-placeholder location="classpath:/config/my-batch*.properties"/>
В AbstractMyJobConfig есть автоматические компоненты, но ничего особенного
@Autowired
protected JobBuilderFactory jobBuilderFactory;
@Autowired
protected StepBuilderFactory stepBuilderFactory;