весенний пакетный экземпляр - PullRequest
0 голосов
/ 09 декабря 2018

Я получаю следующую ошибку:

org.springframework.beans.factory.BeanCreationException Ошибка создания компонента с именем 'job', определенным в ресурсе пути к классу.Инстанцирование бина через фабричный метод не удалось.Не удалось создать экземпляр [org.springframework.batch.core.Job]: Заводской метод 'job' сгенерировал исключение com/java/BatchConfig.class

при попытке скомпилировать следующий фрагмент кода:

 @Configuration
 @EnableBatchProcessing
 @EnableJpaRepositories(basePackageClasses = { TestRepository.class })
 public class BatchConfig {

 @Autowired
 EntityManager entityManager;

 @Autowired
 private JobBuilderFactory jobs;

@Autowired
private StepBuilderFactory stepBuilderFactory;


@Bean
public Job job() {
    return jobs.get("job")
            .start(step1())
            .build();
}

@Bean
public Step step1(){
return stepBuilderFactory.get("step1")
.<testPojo,testPojo>chunk(5)        
.reader(xmlFileItemReader())
.processor(itemProcessor())
.writer(ItemWriter())
.build();
}

@Bean
public ItemReader<testPojo> xmlFileItemReader() {
       StaxEventItemReader<testPojo> xmlFileReader = new 
        StaxEventItemReader<>();
       xmlFileReader.setResource(new FileSystemResource("C:\\*.xml"));
       xmlFileReader.setFragmentRootElementName("document");
       Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
       marshaller.setClassesToBeBound(testPojo.class);
       marshaller.setMappedClass(testPojo.class);
       xmlFileReader.setUnmarshaller(marshaller);
       return xmlFileReader;
}

@Bean
public ItemProcessor itemProcessor() {
    return new TestProcessor();
}
    @Bean
    public JpaItemWriter<testDTO> customerItemWriter()
    {
        JpaItemWriter<testDTO> writer = new JpaItemWriter<>();
writer.setEntityManagerFactory(entityManager.getEntityManagerFactory());
        return writer;
    }  
}

TestProcessor.java
public class TestProcessor implements ItemProcessor<TestPojo, TestDTO> {
    private static final Logger log = 
LoggerFactory.getLogger(TestProcessor.class);
    @Override
    public TestDTO process(final TestPojo npojo) throws Exception {
        final TestDTO sndto = new TestDTO();
        ndto.setMaster_object_name(npojo.getMaster_object());
        ndto.setFull_title(npojo.getFull_title());
        ndto.setAction_expiry_date(npojo.getAction_expiry());
        ndto.setAction_objective(npojo.getAction_objective());
        ndto.setRecommended_action(npojo.getRecommended_action());
        return ndto;
    }
   }

Spring Boot class:
@SpringBootApplication
@EnableBatchProcessing
public class TestApplication {
public static void main(String[] args) {
    SpringApplication.run(TestApplication.class, args);
}
}

 Pom.xml
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
    </dependency>   
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...