我很抱歉,我无法提供有关错误影响的批次的大量信息。
我想知道当XML输入文件位于正确的repo中时,初始化读取器时可能导致错误的原因。在初始化常见简单步骤的读取器过程时,弹簧批次v1和弹簧批次v2之间是否有任何变化?
我们几天前将批次迁移到弹簧批次V2。
错误org.springframework.batch.core.step.AbstractStep []遇到执行步骤的错误 org.springframework.batch.item.ItemStreamException:无法初始化阅读器 在org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:142) 在org.springframework.batch.item.support.CompositeItemStream.open(CompositeItemStream.java:96) 在org.springframework.batch.core.step.tasklet.TaskletStep.open(TaskletStep.java:306) 在org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:192) 在org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:137) 在org.springframework.batch.core.job.flow.JobFlowExecutor.executeStep(JobFlowExecutor.java:64) 在org.springframework.batch.core.job.flow.support.state.StepState.handle(StepState.java:60) 在org.springframework.batch.core.job.flow.support.SimpleFlow.resume(SimpleFlow.java:152) 在org.springframework.batch.core.job.flow.support.SimpleFlow.start(SimpleFlow.java:131) 在org.springframework.batch.core.job.flow.FlowJob.doExecute(FlowJob.java:135) 在org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:301) 在org.springframework.batch.core.launch.support.SimpleJobLauncher $ 1.run(SimpleJobLauncher.java:134) 在org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49) 在org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:127) 在org.springframework.batch.core.launch.support.CommandLineJobRunner.start(CommandLineJobRunner.java:351) 在org.springframework.batch.core.launch.support.CommandLineJobRunner.main(CommandLineJobRunner.java:577) 引起:java.lang.IllegalStateException:输入资源必须存在(读者处于'严格'模式) 在org.springframework.batch.item.xml.StaxEventItemReader.doOpen(StaxEventItemReader.java:187) 在org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:139) ......还有15个
答案 0 :(得分:5)
Caused by: java.lang.IllegalStateException: Input resource must exist (reader is in 'strict' mode
不言自明,缺少资源,设置'严格'模式会导致错误
如果您确定资源位于正确的位置,请检查您是否使用正确的语法来标识资源路径(file:,classpath:,url:或Spring支持的其他语句)?
答案 1 :(得分:4)
在org.springframework.batch.item.xml.StaxEventItemReader bean中将属性strict设置为false,如下所示:
<property name="strict" value="false" />
这将记录Spring尝试查找的路径(这对于调试此类错误非常有用):
WARN: StaxEventItemReader.doOpen() - Input resource does not exist class path resource [path-to-resource]
但是,strict = false将导致StaxEventItemReader不再抛出异常(因此您可能希望之后将StaxEventItemReader更改回strict = true)。