I'm developing a web application(this is my first time) and pretty confused about using property files. I don't know where to put the property files.
The problem is that i have put it under the WEB_INF folder. And when i test run it as a Java Application to check whether Database connections are working according to the properties in the property file it is working without any problem.
But when i run it in a Server as a Web Application it fails to load the properties file saying it could not find the file in the path specified. I tried using every possible path i could give and changing the file directories within the whole project. But I kept getting the same error.
Then i changed my class again from scratch thinking there's some kind of a bug withing my code where i load the properties file. And it seems that it could not find the file either when deployed as a Web App. But my test application works fine. Where do i put this file and how do i use it. I have read @BalusC's answer in this thread https://stackoverflow.com/a/2161583/2999358 but i have no idea why this happens. Can someone help me on this?
I'm using Tomcat 8, Eclipse IDE and building on JSF framework.
Class where i load my properties file
public class ConfigCache {
private static final File FILE = new File("./WebContent/WEB-INF/conf/config.properties");
private static final Properties PROPERTIES = new Properties();
public static final String JDBC_DRIVER = ConfigCache.getProperty("db.driverName");
public static final String DATABASE_URL = ConfigCache.getProperty("db.url");
public static final String DATABASE_USERNAME = ConfigCache.getProperty("db.user");
public static final String DATABASE_PASSWORD = ConfigCache.getProperty("db.pass");
public ConfigCache() {
}
public static String getProperty(String key) {
    if (PROPERTIES.isEmpty()) {
        loadProperties();
    }
    Object value;
    return (value = PROPERTIES.get(key)) == null ? "" : value.toString();
}
private static void loadProperties() {
    if (!FILE.exists()) {
        throw new IllegalArgumentException("The 'config.properties' has not been found.");
    }
    try {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(FILE);
            PROPERTIES.load(fis);
        } finally {
            try {
                if (fis != null) {
                    fis.close();
                }
            } catch (IOException exp) {
                System.out.println("IOException @" + ConfigCache.class + " @ loadProperties() : " + exp);
            }
        }
    } catch (Exception exp) {
        System.out.println("Exception @" + ConfigCache.class + " @ loadProperties() : " + exp);
    }
}
}
Folder Structure

 
     
    
 
     
    