将文件放在WEB-INF目录下并读取它们

时间:2016-08-18 10:41:15

标签: java spring jboss spring-integration

我们正在使用JBOSS 5.1.0.GA和spring集成框架。我们将配置文件放在JBOSS的conf目录下,以从类路径中读取它们。但现在告诉我们应该将所有配置文件从conf目录移动到war文件的WEB-INF目录。当我们将文件放在conf目录下时,一切正常。

<bean id="xyz" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                 <value>classpath:CustomerService/property-files/*.properties</value>     
            </list>
        </property>
</bean>

但是当我们通过进行以下更改将配置文件从conf目录移动到WEB-INF目录时,我们将获得异常java.io.FileNotFoundException

<bean id="xyz" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                 <value>/WEB-INF/CustomerService/property-files/*.properties</value>     
            </list>
        </property>
 </bean>

例外情况:

java.io.FileNotFoundException: URL [jndi:/localhost/pqawdTestWebApp/WEB-INF/CustomerService/spring-integration/Jobs/] cannot be resolved to absolute file path because it does not reside in the file system: jndi:/localhost/pqawdTestWebApp/WEB-INF/CustomerService/spring-integration/Jobs/
    at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:205)
    at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)
    at org.springframework.core.io.UrlResource.getFile(UrlResource.java:169)
    at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindPathMatchingFileResources(PathMatchingResourcePatternResolver.java:526)

任何人都知道该怎么做?

2 个答案:

答案 0 :(得分:0)

将它们放在类路径中(通过一些构建方法)。

/WEB-INF/classes/CustomerService/property-files/*.properties

答案 1 :(得分:0)

WEB-INF目录路径在独立Spring项目中不能作为类路径使用。所以,我已经将配置文件移动到src / resources文件夹,无需任何麻烦就可以导入它们。