#java #tomcat
#java #tomcat
Вопрос:
У меня есть разные проекты, использующие разные версии JDK (5.0, 6.0) и Tomcat (6.0, 7.0), так как же должны быть установлены мои JAVA_HOME
и CATALINA_HOME
в переменных среды?
Или, может быть, нет необходимости устанавливать JAVA_HOME
и CATALINA_HOME
в переменных окружения, если я запускаю свое приложение с помощью .War
файла? jdk/tomcat
На сервере будет запущена версия, которую я выбрал при ее упаковке (через Eclipse -> настройки …).
Ответ №1:
Внутри сценария запуска tomcat /bin/catalina.sh
используются следующие переменные среды:
JAVA_HOME
это путь к JDK, который использовался для запуска tomcat и веб-приложенийCATALINA_HOME
это путь к двоичным файлам tomcatCATALINA_BASE
указан ли путь к файлам конфигурации tomcat
Итак, как насчет такого подхода? Например :
Установите JDK 5.0 для : /opt/jdk5
Установите JDK 6.0 для : /opt/jdk6
Установите tomcat 6.0 на : /opt/tomcat6
Установите tomcat 7.0 на : /opt/tomcat7
У каждого вашего веб-приложения есть своя папка для хранения собственной конфигурации tomcat. Например: /home/web1
для веб-приложения 1
/home/web2
для веб-приложения 2
Внутри каждой из этих папок нам нужны следующие подкаталоги: conf
, logs
, temp
, webapps
work
и /opt/tomcat7/
. Просто скопируйте эти подкаталоги из установочной папки tomcat (т.Е. .war
) . Затем поместите webapps
в соответствующие /home/web1/webapps/webappl.war
папки (например, /home/web2/webapps/webapp2.war
, , , ).
Наконец, напишите скрипт для запуска tomcat, используя разные JDK и tomcat для каждого приложения. Например, для запуска web1 ваш скрипт должен выглядеть следующим образом:
JAVA_HOME=/path/to/jdk #eg./opt/jdk6
CATALINA_HOME=/path/to/tomcat/installation #eg./opt/tomcat7
CATALINA_BASE=/home/web1/
export JAVA_HOME JAVA_OPTS CATALINA_HOME CATALINA_BASE
$CATALINA_HOME/bin/catalina.sh start
Ссылка :
http://www.mohancheema.net/appserver/setting-tomcat-to-run-mutiple-instances-of-it
Комментарии:
1. Где написать тот скрипт, в котором я настраиваю, где находится CATALINA_HOME? В какой папке должен находиться этот скрипт? Должно ли у него быть конкретное имя?
Ответ №2:
Если вы запускаете его в Eclipse, вы можете использовать диалоговое окно Run Configuration, чтобы задать любые переменные среды, которые вам нужно изменить. Они автоматически устанавливаются при выполнении указанной конфигурации запуска. Чтобы использовать это, щелкните правой кнопкой мыши на вашем проекте, выберите Выполнить -> Запустить конфигурации. При этом вы можете выбрать конфигурацию запуска и перейти на вкладку Окружение, и там вы можете указать нужные пользовательские переменные, а также вы можете переопределить все, что задано O / S.
Если вы хотите сделать это вне eclipse и сохраняете копию Tomcat, выделенную для каждого проекта, отредактируйте startup.sh или файлы startup.bat в зависимости от вашей ОС, а затем явно установите переменные среды там.
Пример. Для проекта 1:, поверх /opt/apache-tomcat6-1/bin/startup.sh файл добавляет эти строки
export JAVA_HOME=’/opt/jdk1′ export JAVA_HOME=’/ opt /apache-tomcat6-1′
Пример. Для проекта 2: поверх /opt/apache-tomcat6-2/bin/startup.sh файл добавляет эти строки
export JAVA_HOME=’/opt/jdk2′ export JAVA_HOME= ‘/ opt /apache-tomcat6-2’
Если у вас нет выделенной копии Tomcat, то вы можете создать сценарий оболочки / пакетный файл для каждого проекта, который установит необходимые переменные среды, подобные этому, а затем вызовет соответствующий startup.sh или файл startup.bat.
Комментарии:
1. startup.sh для UNIX, если я запускаю в Windows, должен быть startup.bat, правильно?
Ответ №3:
Эти переменные используются скриптами, которые запускают Tomcat, и в остальном не имеют значения. Вы можете установить их непосредственно перед запуском startup.sh
скрипта, или вы можете отредактировать catalina.sh
скрипт, чтобы установить значения в самом скрипте (это хороший способ сделать это, поскольку catalina.sh
он используется другими скриптами), или вы можете написать свои собственные скрипты, которые устанавливают переменные, а затем вызывают скрипты tomcat… Существует множество возможностей. Вы просто не можете установить переменные глобально.