Конфигурирование веб-приложения tomcat
От: Аноним  
Дата: 15.05.12 20:23
Оценка:
Читая инет, никак не пойму одной вещи.

Каким образом задаются параметры веб-приложения, зависящие от конкретного экземпляра устройства, на котором приложение разворачивается.

В винде при установке приложения или сервиса инсталлятор на форме спрашивает эти параметры, возможно, предлагает значения по умолчанию. Но для веб-приложения есть только war файл, который копируется в каталог webapps.

1. На ум приходит использовать переменную окружения, задавая ее перед установкой. Не очень нравится, если это каталог файлов, могут быть конфликты с другими веб-приложениями, других версий.

2. Распаковывать war, конфигурировать, потом опять упаковывать, тоже как-то не очень.

3. Сделать какой-то скрипт, и запускать нечто вроде install mywebapp.war files=<Путь> и с его помощью задавать параметры. Так делается по взрослому?

4. Еще один вариант, жестко прописать путь к файлу в конфигурации, типа /var/mywebappfiles. После инсталляции, пользователь, сразу останавливает приложение, копирует файлы в другую папку, делает симлинк. Тоже не ахти. Во первых, пока он его остановит, приложение уже бог знает что в каталог напишет, может всю память съесть (теоретически). Если только сделает симлинк до установки. Однако среди параметров могут быть не только пути к файлам и фактически приложение стартует с некорректной конфигурацией.

5. Меня бы устроил вариант запуска java c параметром -D для конкретного веб-приложения, только я такого не нашел. Только при конфигурировании запуска Tomcat в IDE (IntelliJ). Возможно, если там есть, это можно задать и в боевой версии.
Re: Конфигурирование веб-приложения tomcat
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 15.05.12 20:30
Оценка:
Вполне себе вариант сделать через переменную окружения (или -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://jvmmemory.com — простой способ настройки JVM
Re: Конфигурирование веб-приложения tomcat
От: Sergey Astakhov Россия  
Дата: 15.05.12 22:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Читая инет, никак не пойму одной вещи.


А>Каким образом задаются параметры веб-приложения, зависящие от конкретного экземпляра устройства, на котором приложение разворачивается.


Для таких вещей в JavaEE предполагается использование JNDI. Пример для tomcat: http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html
Re[2]: Конфигурирование веб-приложения tomcat
От: Аноним  
Дата: 24.05.12 14:17
Оценка:
Здравствуйте, Sergey Astakhov, Вы писали:

SA>Для таких вещей в JavaEE предполагается использование JNDI. Пример для tomcat: http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html


Прочитал эту статью (я ее видел раньше), понял не все.

Нашел интересное для себя вот тут http://tomcat.apache.org/tomcat-7.0-doc/config/context.html в "Defining a context". Как мне кажется, это как раз то, что я искал. Некий установщик опрашивает пользователя или принимает параметры из командной строки, далее формирует свой mywebapp.xml в каталоге "$CATALINA_BASE/conf/[enginename]/[hostname]/" с полученными параметрами и после ставит war.
Re[3]: Конфигурирование веб-приложения tomcat
От: Blazkowicz Россия  
Дата: 24.05.12 14:44
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Нашел интересное для себя вот тут http://tomcat.apache.org/tomcat-7.0-doc/config/context.html в "Defining a context". Как мне кажется, это как раз то, что я искал. Некий установщик опрашивает пользователя или принимает параметры из командной строки, далее формирует свой mywebapp.xml в каталоге "$CATALINA_BASE/conf/[enginename]/[hostname]/" с полученными параметрами и после ставит war.


http://rsdn.ru/forum/java/4734438.aspx
Автор: NikeByNike
Дата: 11.05.12
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.