Could not open ServletContext resource

glassfish, java, spring, web.xml

Solution

Do not use classpath. This may cause problems with different ClassLoaders (container vs. application). WEB-INF is always the better choice.

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring-config.xml</param-value>
</context-param>

and

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

Problem

This is quite similar question to one older but the solution did not work for me. I have a WAR package. In `web.xml` ``` <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application-context.xml</param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> ``` In `application-context.xml` ``` <bean id="placeholderConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:social.properties</value> </property> </bean> ``` But getting this: org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/social.properties] I checked the WAR package - `.xml` and `.properties` files are both in `/WEB-INF/classes` `.properties` file is in `src/main/resources` and `.xml` in `src/main/java` (in default package both) and maven transports them (I think) correctly in the default package of `WEB-INF/classes` Does anyone know why i could get this exception? Thank you. EDIT: I just want to add that JUnit tests goes correctly (i mean they load what they should from `social.properties`) but when running the app it ignores my `classpath:` prefix

Original source