java.lang.IllegalStateException: 输入资源必须存在(读者处于“严格”模式):类路径资源

4
这是我的项目表单。
src
   main
        ressources
                   applicationContext.xml
target
upload
       pharmacies.txt

这是Spring Batch Reader

  <property name="resource" value="./upload/pharmacies.txt" />
  <property name="lineMapper">
   <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
    <property name="lineTokenizer">
    <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
     <property name="delimiter" value=","/>
     <property name="names" value="nom,telephone,adresse,Latitude,Longitude" />
    </bean>
    </property>
    <property name="fieldSetMapper">
     <bean class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
      <property name="targetType" value="model.Pharmacie" />
     </bean>
    </property>
   </bean>
  </property>
 </bean>

这是我运行的批处理程序。

public class BatchPharmacie {

 public static void main (String [] args) throws Exception {
  ClassPathXmlApplicationContext cpt = new ClassPathXmlApplicationContext("applicationContext.xml");
  //cpt.start();
  JobLauncher jobLauncher = (JobLauncher) cpt.getBean("jobLauncher");
  Job job = (Job) cpt.getBean("importPharmacies");
  //JobParameters parameter = new JobParametersBuilder().addDate("date", new Date())
  //   .addString("input.file", "C:/envdev/travail/in/personnes.txt").toJobParameters();
  jobLauncher.run(job, new JobParameters());
 }

}

我收到了以下的错误:
java.lang.IllegalStateException: 输入资源必须存在(读取器处于“严格”模式):类路径资源

1
尝试使用 file:// 前缀路径资源。 - Luca Basso Ricci
1
我不建议在配置文件中使用像那样的相对 URL 作为您的输入位置。当您完全限定它并添加 file:// 如 Luca 所提到的那样,会发生什么? - Michael Minella
一万次浏览量,却没有人认为这是一个好问题。不过,至少你得到了我的投票! - ssimm
在使用IntelliJ时,我在处理Michael Minella的优秀的Spring Batch书籍时遇到了这个问题。在IntelliJ中,右键单击src/main/resources目录,然后选择“标记目录为->资源根目录”。奇怪的是,我尝试了“取消标记目录为->资源根目录”,重新启动了IntelliJ,清理了所有IntelliJ文件以重现原始问题,但无法再次重现。我认为这只是IntelliJ的一个小问题,即资源不在类路径中。 - John
1个回答

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接