当我运行一个spring批处理的项目时,出现异常!spring批处理StaxEventItemReader释放异常
异常详细信息:
Caused by: java.lang.NullPointerException: null
at org.springframework.batch.item.xml.StaxEventItemReader.moveCursorToNextFragment(StaxEventItemReader.java:141)
文件名是正确的!
配置代码:
@Bean
@StepScope
public StaxEventItemReader xmlFileItemReader(@Value("#{jobParameters['fileType']}") String fileType,
@Value("#{jobExecutionContext['extractFileName']}") String fileName) throws Exception {
System.out.println("======================== fileName =========================="+fileName);
StaxEventItemReader reader = new StaxEventItemReader();
reader.setResource(new FileSystemResource(fileName));
reader.setFragmentRootElementName("PortData");
reader.setUnmarshaller(unmarshaller());
reader.afterPropertiesSet();
return reader;
}
thx很多我的XML文件可能看起来有点复杂。我味精 –
我觉得 “setFragmentRootElementName” 应提取XML,片段为什么会失败 –
为什么不被接受?如果PortData是xml文件的根目录,则会遇到问题。 @ robinson.L:你什么意思? setFragmentRootElementName用于从子对象移动到子对象;如果你需要组合,你必须重写'StaxEventItemReader.moveCursorToNextFragment()' –