当我尝试启动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>
答案 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-
答案 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->更新项目)。
并且,当然,请检查文件名是否与注释中的文件名匹配。
如果您的项目没有其他问题,那么它应该可以工作。