Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 912 Vote(s) - 3.46 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Could not open ServletContext resource

#1

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
Reply

#2
I think currently the application-context.xml file is into src/main/resources AND the social.properties file is into src/main/java... so when you package (mvn package) or when you run tomcat (mvn tomcat:run) your social.properties disappeared (I know you said when you checked into the .war the files are here... but your exception says the opposite).

The solution is simply to put all your configuration files (application-context.xml and social.properties) into src/main/resources to follow the maven standard structure.
Reply

#3
Are you having Tomcat unpack the WAR file? It seems that the files cannot be found on the classpath when a WAR file is loaded and it is **not** being unpacked.
Reply

#4
try with this code...

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>/social.properties</value>
</list>
</property>
</bean>
Reply

#5
Put the things like `/src/main/resources/foo/bar.properties` and then reference them as `classpath:/foo/bar.properties`.
Reply

#6
Try to use `classpath*:` prefix instead.

[To see links please register here]


Also please try to deploy exploded war, to ensure that all files are there.
Reply

#7
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>
Reply

#8
Mark sure propertie file is in "/WEB-INF/classes" try to use

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

#9
I had the same error.

My filename was `jpaContext.xml` and it was placed in `src/main/resources`. I specified param `value="classpath:/jpaContext.xml"`.

Finally I renamed the file to `applicationContext.xml` and moved it to the WEB-INF directory and changed param value to `/WEB-INF/applicationContext.xml`, then it worked!
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through