I am trying to read the test1.properties
file which is located at an external folder.
here is my spring config file:
Use setenv.sh in the bin directory. If the file doesn't exist, create it. To add something to the classpath use the following syntax:
CLASSPATH=/yourdir/
For windows: setenv.bat
Solution: creating the setenv.bat file under tomcat bin folder helped me in WINDOWS.
Ok.. finally fixed it.. I had been doing it correctly this whole time.. it was my IDE which caused the problem. The IDE was not picking up the changes in the catalina.properties file. I had to delete the server config in my IDE and re configure it.
these links were helpful in general:
Adding a directory to tomcat classpath
http://www.mulesoft.com/tomcat-classpath#solutions
If your intention to keep file outside the war or ear , so that you can update it without compling and creating war again. just editing the file and restarting the server. Keep it in any external folder , even outside server and give absolute path in spring.
<bean id="propertyConfigurer3" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="locations">
<list>
<value>classpath:test.properties</value>
<value>**file:/someexteranal/dir/test1.properties**</value>
</list>
</property>
Best thing , you can give this / path with root in Unix/linux and same will work in windows, just need to keep file in directory where your server is installed. Like your tomcat in D drive , then keep it in D:\someexternal\dir and above code will work fine there too