为什么我的PathResource不可读?

史蒂夫克罗斯

我尝试编写一个Spring Batch应用程序,该应用程序读取一个csv文件并将其内容存储在数据库中。我无法创建一个,FlatFileItemReader因为我得到一个提示,IllegalStateException指出Input资源必须是可读的(阅读器处于“严格”模式)

这是我为读者准备的配置:

@Bean
public ItemReader<CadSystem> cadSystemReader(final Path backupDirectory,
        final CadSystemFieldSetMapper fieldSetMapper) {
    final FlatFileItemReader<CadSystem> reader = new FlatFileItemReader<>();
    final DefaultLineMapper<CadSystem> lineMapper = new DefaultLineMapper<>();
    final PathResource resource = new PathResource(backupDirectory.resolve("cad_systems.csv"));

    lineMapper.setLineTokenizer(new DelimitedLineTokenizer(";"));
    lineMapper.setFieldSetMapper(fieldSetMapper);
    reader.setResource(resource);
    reader.setLineMapper(lineMapper);

    return reader;
}

这是堆栈跟踪:

org.springframework.batch.item.ItemStreamException: Failed to initialize the reader
    at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:147)
    at org.springframework.batch.item.support.CompositeItemStream.open(CompositeItemStream.java:96)
    at org.springframework.batch.core.step.tasklet.TaskletStep.open(TaskletStep.java:310)
    at org.springframework.batch.core.step.AbstractStep.execute(AbstractStep.java:195)
    at org.springframework.batch.core.job.SimpleStepHandler.handleStep(SimpleStepHandler.java:148)
    at org.springframework.batch.core.job.AbstractJob.handleStep(AbstractJob.java:386)
    at org.springframework.batch.core.job.SimpleJob.doExecute(SimpleJob.java:135)
    at org.springframework.batch.core.job.AbstractJob.execute(AbstractJob.java:304)
    at org.springframework.batch.core.launch.support.SimpleJobLauncher$1.run(SimpleJobLauncher.java:135)
    at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50)
    at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:128)
    at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.execute(JobLauncherCommandLineRunner.java:210)
    at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.executeLocalJobs(JobLauncherCommandLineRunner.java:227)
    at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.launchJobFromProperties(JobLauncherCommandLineRunner.java:121)
    at org.springframework.boot.autoconfigure.batch.JobLauncherCommandLineRunner.run(JobLauncherCommandLineRunner.java:115)
    at org.springframework.boot.SpringApplication.runCommandLineRunners(SpringApplication.java:672)
    at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:690)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
    at App.main(App.java:11)
Caused by: java.lang.IllegalStateException: Input resource must be readable (reader is in 'strict' mode): path [D:\backup\cad_systems.csv]
    at org.springframework.batch.item.file.FlatFileItemReader.doOpen(FlatFileItemReader.java:259)
    at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:144)
    ... 20 common frames omitted

该文件存在于,D:\backup\cad_systems.csv并且对所有用户/组均可读。

是什么导致此错误?

更新

我试图使用FileSystemResource这样的

final FileSystemResource resource = new FileSystemResource(backupDirectory.resolve("cad_systems.csv").toFile());

现在可以了。但是,这有什么问题PathResource呢?

史蒂夫克罗斯

该错误是由JDK 7中的错误引起的使用Java 8时不会发生此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的PathResource不可读?

来自分类Dev

为什么我的信息流不可读?

来自分类Dev

为什么简单的迭代器不可读?

来自分类Dev

为什么此PDF字体在我的机器上看起来不可读?

来自分类Dev

为什么我要进入可读流?

来自分类Dev

使用GnuPG解密时,为什么输出不可读?

来自分类Dev

为什么Camel Kafka-Rabbitmq连接器将我的消息转换为不可读的格式?

来自分类Dev

TRegistry-为什么有些键可读,而另一些则不可读?

来自分类Dev

TRegistry-为什么有些键可读,而另一些则不可读?

来自分类Dev

为什么mcrypt_encrypt返回不可读的字符串

来自分类Dev

为什么来自 python 中 ngrok 的 requests.get 的原始内容不可读?

来自分类Dev

为什么 Java Base64 解码返回不可读的字符

来自分类Dev

为什么我的A *算法试探法不可接受?

来自分类Dev

为什么在Django unitest期间我的表不可用?

来自分类Dev

为什么我的下拉列表项不可见?

来自分类Dev

为什么我的表在JScrollPane中不可见?

来自分类Dev

为什么是我的弦。查找不可用

来自分类Dev

为什么我收到Typeerror:'int'对象不可迭代

来自分类Dev

为什么我的React组件库不可摇树?

来自分类Dev

为什么我得到'str'对象不可调用?

来自分类Dev

为什么我的svg在div中不可见

来自分类Dev

HTML CSS:为什么我的页脚不可见?

来自分类Dev

为什么我的JavaFX PathTransition不可见?

来自分类Dev

为什么我的<h:form>不可见?

来自分类Dev

角度js,为什么我的数据不可视化?

来自分类Dev

为什么我无法使QMenu不可见?

来自分类Dev

jqgrid为什么填充我的表但不可编辑?

来自分类Dev

为什么 BooleanFilter 似乎对我不可用?

来自分类Dev

为什么我的自定义视图不可见?

Related 相关文章

  1. 1

    为什么我的PathResource不可读?

  2. 2

    为什么我的信息流不可读?

  3. 3

    为什么简单的迭代器不可读?

  4. 4

    为什么此PDF字体在我的机器上看起来不可读?

  5. 5

    为什么我要进入可读流?

  6. 6

    使用GnuPG解密时,为什么输出不可读?

  7. 7

    为什么Camel Kafka-Rabbitmq连接器将我的消息转换为不可读的格式?

  8. 8

    TRegistry-为什么有些键可读,而另一些则不可读?

  9. 9

    TRegistry-为什么有些键可读,而另一些则不可读?

  10. 10

    为什么mcrypt_encrypt返回不可读的字符串

  11. 11

    为什么来自 python 中 ngrok 的 requests.get 的原始内容不可读?

  12. 12

    为什么 Java Base64 解码返回不可读的字符

  13. 13

    为什么我的A *算法试探法不可接受?

  14. 14

    为什么在Django unitest期间我的表不可用?

  15. 15

    为什么我的下拉列表项不可见?

  16. 16

    为什么我的表在JScrollPane中不可见?

  17. 17

    为什么是我的弦。查找不可用

  18. 18

    为什么我收到Typeerror:'int'对象不可迭代

  19. 19

    为什么我的React组件库不可摇树?

  20. 20

    为什么我得到'str'对象不可调用?

  21. 21

    为什么我的svg在div中不可见

  22. 22

    HTML CSS:为什么我的页脚不可见?

  23. 23

    为什么我的JavaFX PathTransition不可见?

  24. 24

    为什么我的<h:form>不可见?

  25. 25

    角度js,为什么我的数据不可视化?

  26. 26

    为什么我无法使QMenu不可见?

  27. 27

    jqgrid为什么填充我的表但不可编辑?

  28. 28

    为什么 BooleanFilter 似乎对我不可用?

  29. 29

    为什么我的自定义视图不可见?

热门标签

归档