Получение объекта свойств из файла config.properties после развертывания

У меня есть файл конфигурации, содержащий информацию о сервере, такую ​​как URL-адреса FTP и их учетные данные. Я пытаюсь при развертывании своего веб-приложения ссылаться на файл config.properties, чтобы присвоить сохраненные значения локальным переменным, но по какой-то причине не могу найти файл.

У меня есть класс getConfigProperties:

public class getConfigProperties {

public Properties getConfig(String fileName) {
    // load config file
    Properties prop = new Properties();
    InputStream input = null;

    try {
        // grab config file from destination
        input = getConfigProperties.class.getClass().getResourceAsStream(
                fileName);
        // check if input is null
        if (input == null) {
            System.out.println("Sorry, unable to find "
                    + "config.properties");
            return null;
        }
        // load content
        prop.load(input);

        // start to declare variables
        // Prod vars
        System.out.println(prop.getProperty("prismUrlProd"));
        System.out.println(prop.getProperty("prismUserProd"));
        System.out.println(prop.getProperty("prismPassProd"));
        System.out.println(prop.getProperty("cardUrlProd"));
        System.out.println(prop.getProperty("cardUserProd"));
        System.out.println(prop.getProperty("cardPassProd"));
        System.out.println(prop.getProperty("pwcProd"));
        System.out.println(prop.getProperty("esdSignInProd"));
        System.out.println(prop.getProperty("emailProd"));

        // used to catch possible errors
    } catch (IOException ex) {
        ex.printStackTrace();
    } finally {
        if (input != null) {
            try {
                input.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return prop;
}

public static void main(String[] args) {
    getConfigProperties a = new getConfigProperties();
    a.getConfig("/config/config.properties");
}
}

И я использую это в другом классе для назначения переменных. Внутри моего метода я устанавливаю объект Properties на то, что возвращается из getConfig (имя файла String):

public static void initialize() {
    // load config file
    getConfigProperties config = new getConfigProperties();
    Properties prop = config.getConfig("/config/config.properties");
}

В файле свойств в веб-приложении объясняется, что при развертывании наше расположение файла config. свойства меняются, но при попытке "/WEB-INF/classes/config/config.properties" я не могу найти файл. Используя main в моем классе getConfigProperties, я могу без проблем найти config.properties и сослаться на текст в моем файле конфигурации, распечатав его на консоли. Любые возможные предложения относительно того, где этот файл может находиться при развертывании? Должен ли я ссылаться на него определенным образом? Любая помощь будет очень признательна.


person antihero989    schedule 14.07.2014    source источник
comment
Я смог заставить это работать при развертывании, но только тогда, когда у меня был файл config.properties в папке src. Я сослался на файл, используя только config.properties в качестве пути к файлу. Несмотря на то, что это работает, я надеялся, что смогу как-то сослаться на него в пакете для организационных целей. Это придется сделать пока.   -  person antihero989    schedule 14.07.2014


Ответы (1)


Я заставил это работать, поместив config.properties в мою папку src и сославшись на нее с помощью «config.properties».

person antihero989    schedule 15.07.2014