java.io.FileNotFoundException:无法打开类路径资源[timex-servlet.properties],因为它不存在

时间:2012-04-12 21:04:20

标签: spring filenotfoundexception properties-file timex

当我尝试启动spring Web应用程序时,收到以下错误消息:

2012-04-12 13:53:20,491 ERROR [org.springframework.web.servlet.DispatcherServlet] - 

Context initialization failed
org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [timex-servlet.properties] cannot be opened because it does not exist
java.io.FileNotFoundException: class path resource [timex-servlet.properties] cannot be opened because it does not exist
    at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:137)
    at org.springframework.core.io.support.PropertiesLoaderSupport.loadProperties(PropertiesLoaderSupport.java:172)

我正在通过eclipse运行Tomcat(版本6.x)。我尝试将timex-servlet.properties放在以下目录中,但无济于事:

WebContent\WEB-INF
WebContent\WEB-INF\classes
WebContent\

以下是timex-servlet.xml中timex-servlet.properties的引用:

    <bean id="placeholderConfig"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location"
        value="timex-servlet.properties" />
</bean>

有几个SO线程处理相同的消息,表示放置类路径:在属性文件引用前面。所以我尝试了以下,但也没有用:

        <bean id="placeholderConfig"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location"
        value="classpath:timex-servlet.properties" />
</bean>

6 个答案:

答案 0 :(得分:13)

确保将文件放在/WEB-INF/classes文件夹中并使用classpath:/timex-servlet.properties(注意类路径后的斜杠:)

答案 1 :(得分:3)

如果您不想在课程下移动它并希望将属性文件保留在WEB-INF下,请尝试以下操作 classpath:../ file.properties

答案 2 :(得分:1)

不应将属性文件放置在定义源代码和main方法的位置,而应将其放置在配置文件(applicationContext.xml)的位置。

在我的情况下,我的属性文件名为Sport.properties(文件扩展名应为.properties),并在项目中使用maven-

  1. 属性文件的位置-> src-> test-> java-> sport.properties

PropertiesFilelocation

答案 3 :(得分:0)

对于Spring项目,将文件放在src或src-&gt; somefolder-&gt; some.properties文件下。

答案 4 :(得分:0)

在我的情况下,我在我的pom中错过了一个货物maven2插件。可能会帮助那些被卡住的人。

答案 5 :(得分:0)

仅在这里描述我的情况,也许会对某人有所帮助:)使用具有纯Java配置(无XML)的Maven和Spring MVC。这是我解决问题的步骤:

1)将属性文件放置在src/main/resources文件夹中(如果没有,则手动创建最后一个)。

仔细检查,认真!如果您的关注程度与我相同,则可能是一个问题:)

2)在您的Java配置类中添加以下注释: @PropertySource("classpath:nameOfYourFile.properties")

3)更新您的Maven项目(在Eclipse中:右键单击项目-> Maven->更新项目)。

并且,当然,请检查文件名是否与注释中的文件名匹配。
如果您的项目没有其他问题,那么它应该可以工作。