Каким образом задаются параметры веб-приложения, зависящие от конкретного экземпляра устройства, на котором приложение разворачивается.
В винде при установке приложения или сервиса инсталлятор на форме спрашивает эти параметры, возможно, предлагает значения по умолчанию. Но для веб-приложения есть только war файл, который копируется в каталог webapps.
1. На ум приходит использовать переменную окружения, задавая ее перед установкой. Не очень нравится, если это каталог файлов, могут быть конфликты с другими веб-приложениями, других версий.
2. Распаковывать war, конфигурировать, потом опять упаковывать, тоже как-то не очень.
3. Сделать какой-то скрипт, и запускать нечто вроде install mywebapp.war files=<Путь> и с его помощью задавать параметры. Так делается по взрослому?
4. Еще один вариант, жестко прописать путь к файлу в конфигурации, типа /var/mywebappfiles. После инсталляции, пользователь, сразу останавливает приложение, копирует файлы в другую папку, делает симлинк. Тоже не ахти. Во первых, пока он его остановит, приложение уже бог знает что в каталог напишет, может всю память съесть (теоретически). Если только сделает симлинк до установки. Однако среди параметров могут быть не только пути к файлам и фактически приложение стартует с некорректной конфигурацией.
5. Меня бы устроил вариант запуска java c параметром -D для конкретного веб-приложения, только я такого не нашел. Только при конфигурировании запуска Tomcat в IDE (IntelliJ). Возможно, если там есть, это можно задать и в боевой версии.
Вполне себе вариант сделать через переменную окружения (или -D что по сути одно и тоже). Чтобы не было конфликтов, можно брать путь к конкретному файлу из контекста приложения. Т.е. app.v1.war берет из файла app.v1.properties, а app.v2.war берет из файла app.v2.properties. При этом war-файл один и тот же.
Еще можно через параметры контекста http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Context_Parameters
Здравствуйте, Аноним, Вы писали:
А>Читая инет, никак не пойму одной вещи.
А>Каким образом задаются параметры веб-приложения, зависящие от конкретного экземпляра устройства, на котором приложение разворачивается.
Прочитал эту статью (я ее видел раньше), понял не все.
Нашел интересное для себя вот тут http://tomcat.apache.org/tomcat-7.0-doc/config/context.html в "Defining a context". Как мне кажется, это как раз то, что я искал. Некий установщик опрашивает пользователя или принимает параметры из командной строки, далее формирует свой mywebapp.xml в каталоге "$CATALINA_BASE/conf/[enginename]/[hostname]/" с полученными параметрами и после ставит war.
Здравствуйте, Аноним, Вы писали:
А>Нашел интересное для себя вот тут http://tomcat.apache.org/tomcat-7.0-doc/config/context.html в "Defining a context". Как мне кажется, это как раз то, что я искал. Некий установщик опрашивает пользователя или принимает параметры из командной строки, далее формирует свой mywebapp.xml в каталоге "$CATALINA_BASE/conf/[enginename]/[hostname]/" с полученными параметрами и после ставит war.