0

我已经定义了一个 ClassPathResource bean,如下所示:

<bean id="ivsInputResource" class="org.springframework.core.io.ClassPathResource">
    <qualifier value="ivs" />
    <constructor-arg index="0"
        value="classpath*:IVS90test.csv"/>
</bean>

但是当注入资源 bean 时,我的应用程序因以下异常而中断:

Caused by: java.lang.IllegalStateException: Input resource must exist (reader is in 'strict' mode): class path resource [classpath*:IVS90test.csv]
    at org.springframework.batch.item.file.FlatFileItemReader.doOpen(FlatFileItemReader.java:256)
    at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:134)

显然找不到资源。当使用 FileSystemResource(调整路径)时,我的应用程序确实可以工作。

如何从类路径正确加载文件?

我的项目布局如下:

eclipse中项目布局截图

4

1 回答 1

1

classpath:使用ClassPathResource时无需在文件路径中指定

参数
path - 类路径中的绝对路径

这里,绝对路径是指从资源文件夹的根目录开始,所以你需要做的就是把它改成

<bean id="ivsInputResource" class="org.springframework.core.io.ClassPathResource">
    <qualifier value="ivs" />
    <constructor-arg index="0"
        value="IVS90test.csv"/>
</bean>
于 2012-11-27T13:56:35.337 回答