我有春季批处理项目,代码如下:
@Scheduled(fixedRate = 5000)
public Job xmlJob() throws Exception {
return jobBuilderFactory
.get("XMLjob")
.start(stepBuilderFactory.get("XML")
.<Person, Person>chunk(10)
.reader(personXmlReader())
.processor(xmlPersonProcessor())
.writer(displayData())
.build()
)
.build();
}
@Bean
StaxEventItemReader personXmlReader() throws Exception {
System.out.println("Reader");
Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
jaxb2Marshaller.setClassesToBeBound(Person.class);
jaxb2Marshaller.afterPropertiesSet();
StaxEventItemReader staxEventItemReader = new StaxEventItemReader();
staxEventItemReader.setName("persons");
staxEventItemReader.setResource(new ClassPathResource("person.xml"));
staxEventItemReader.setFragmentRootElementName("person");
staxEventItemReader.setUnmarshaller(jaxb2Marshaller);
return staxEventItemReader;
}
@Override
public Person process(final Person person) throws Exception {
final int id = person.getPersonId();
final String firstName = person.getFirstName().toUpperCase();
final String lastName = person.getLastName().toUpperCase();
final int age = person.getAge();
final String job = person.getJob();
final Person transformedPerson = new Person(id, firstName, lastName, age+1, job);
log.info("Job Converting (" + person + ") into (" + transformedPerson + ")");
return transformedPerson;
}
程序从xml文件中读取结构,然后将其打印到控制台中。 问题是工作不再运行,我不知道为什么。 当我写这样的东西时:
@Scheduled(fixedRate = 5000)
public String show(){
System.out.println("System");
return null;
}
程序正常运行... 我启用了@EnableScheduling。