Java, Spring, Невозможно найти /WEB-INF/spring.properties. Нужно ли устанавливать его где-нибудь, кроме propertyConfigurer? - PullRequest
2 голосов
/ 27 марта 2011

Я получаю сообщение об ошибке Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring.properties] cannot be opened because it does not exist.Файлы spring.properties существуют и находятся в моем каталоге / WEB-INF (я подтвердил, что он находится в моем каталоге сборки после сборки проекта).Я установил его в каталог моего проекта .classpath, например:

<classpathentry kind="src" path="src/main/webapp/WEB-INF/spring.properties"/>

В контексте приложения Spring я ввел его так:

<bean id="propertyConfigurer" 
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="/WEB-INF/spring.properties" />
</bean> 

Я прошу прощения, если этоОсновной вопрос, но я действительно озадачен тем, что это за проблема и как ее решить, я много искал по этому вопросу и, похоже, не могу ее понять.Спасибо за любой совет

Ответы [ 5 ]

10 голосов
/ 27 марта 2011

Глядя на один из моих веб-приложений, использующих PropertyPlaceholderConfigurer, я вижу, что я поместил свойства в /WEB-INF/classes, а затем настроил PPC для использования его с URL-адресом Spring classpath:; т.е.

    /WEB-INF/classes/substitution.properties

доступ как

    classpath:substitution.properties
3 голосов
/ 14 июля 2011

Spring поддерживает ServletContextResource , который можно использовать, полностью исключив префикс ресурса.«Вы получите тип ресурса, соответствующий этому конкретному контексту приложения», и поскольку мы используем веб-контекст, этим ресурсом будет ServletContextResource.

Путь из корня вашего веб-приложения.Наши пути выглядят как

 <context:property-placeholder location="/WEB-INF/spring/appServlet/application.properties"/>
1 голос
/ 27 марта 2011

Ваш путь ("src / main / webapp") предполагает, что вы используете Maven для создания проекта.Если это так, поместите ваши .properties -file (s) в / src / main / resources и используйте "classpath:<filename>" для доступа к ним, все в src / main / resources должно быть доступно через classpath без какой-либо дальнейшей настройки.

0 голосов
/ 16 октября 2011

Просто поместите файл spring.properties в каталог src / main / webapp (вместе с WEB-INF) и укажите на него

<bean id="placeholderConfig"   
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
    <list>
        <value>spring.properties</value>
    </list>
    </property>
</bean>
0 голосов
/ 27 марта 2011

Попробуйте поместить файл под WEB-INF/classes/ и сослаться на него с value="spring.properties". Я думаю, что это должно сработать.

...