Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > поменять программно значение переменной


Автор: DEER 27.3.2007, 17:41
Здравствуйте..
Вот в web.xml лежит параметр
Код

    <env-entry>
        <description>Root directory</description>
        <env-entry-name>root_directory</env-entry-name>
        <env-entry-value>C:\shared_dir\</env-entry-value>
        <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>

я его получаю примерно так
Код

            InitialContext ic = new InitialContext();
            String result = ic.lookup("java:comp/env/root_directory");

А можно ли как нибудь поменять программно значение этой переменной? что бы оно сохранилось в web.xml?

Автор: y3u 27.3.2007, 22:06
а нафига, извиняюсь, козе байан? smile 

Автор: Maksym 27.3.2007, 22:24
DEER
Можно открыть web.xml на диске, распарсить, подменить значение и сохранить. Файл перезатрется следующим же деплойментом. Он ну совершенно не предназначен для того, чтобы что-нибудь в нем програмно менять. Что за задача подтолкнула к таким отчаяным шагам?

Автор: YuG 28.3.2007, 09:08
Введи дополнительное звено:
В web.xml всегда прописывается путь к файлу настроек (или к базе, или еще куда-нибудь).
А в этом файле настроек лежит значение для твоего "root_directory", которое ты програмно можешь менять.
А править web.xml - не есть гуд.

Автор: DEER 28.3.2007, 09:26
Спасиба.
На самом деле мне не конкретно нужно поменять параметр из web.xml,  
просто встал вопрос об администрировании некороторых ресурсов (вроде jndi это называется?).
Тут или переносить эти ресурсы в отдельный файл или в БД и изменить механизм получения этих ресурсов... А что бы много не перелопачивать, я подумал, что может можно эти ресурсы програмно менять... (это и придложил YuG)
Если открыть файл web.xml или context.xml для записи и изменить их содержимое, то ведь ресурсы в приложении не изменяться. Я пробовал руками менять - надо перезапускать томкат.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)