java.io.FileNotFoundException: ресурс пути к классу [timex-servlet.properties] не может быть открыт, потому что он не существует
При попытке запустить весеннее веб-приложение появляется следующее сообщение об ошибке:
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)
Я запускаю Tomcat (версия 6.x) через Eclipse. Я попытался поместить timex-servlet.properties в следующие каталоги, но безрезультатно:
WebContent\WEB-INF
WebContent\WEB-INF\classes
WebContent\
Вот ссылка на timex-servlet.properties в timex-servlet.xml:
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"
value="timex-servlet.properties" />
</bean>
Есть несколько SO-потоков, имеющих дело с одним и тем же сообщением, в котором говорится, что нужно поместить classpath: перед ссылкой на файл свойств. Поэтому я попробовал следующее, которое также не сработало:
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location"
value="classpath:timex-servlet.properties" />
</bean>
5 ответов
Убедитесь, что файл находится в /WEB-INF/classes
папка и использование classpath:/timex-servlet.properties
(обратите внимание на косую черту после classpath:)
Если вы не хотите перемещать его под класс и хотите оставить файл свойств в WEB-INF/ попробуйте следующий путь к классу:../file.properties
Не следует размещать файл свойств в том же месте, где определены исходный код и метод main. Он должен находиться в том же месте, где находится ваш файл конфигурации (applicationContext.xml).
В моем случае мое имя файла свойств - sport.properties (расширение файла должно быть.properties), и я использую maven для проекта -
- Расположение файла свойств -> src-> test-> java-> sport.properties
Для проектов Spring поместите файл в файл src или src->somefolder->some.properties.
В моем случае я пропустил плагин cargo-maven2-pom. Может помочь тому, кто застрял.
Просто описав мой случай здесь, может быть, он кому-нибудь поможет:) Использовал Maven и Spring MVC с чистой конфигурацией Java (без XML). Вот мои шаги для решения проблемы:
1) Поместите свой файл свойств в src/main/resources
папку (создайте последнюю вручную, если ее нет).
2) Добавьте в свой класс конфигурации Java следующую аннотацию:@PropertySource("classpath:nameOfYourFile.properties")
3) Обновите свой проект Maven (в Eclipse: щелкните правой кнопкой мыши на проекте -> Maven -> Обновить проект).
И, конечно же, убедитесь, что имя вашего файла совпадает с именем в аннотации.
Если с вашим проектом все в порядке, значит, оно должно работать.