當我運行一個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()' –