Делайте что-нибудь каждый раз, когда служба Tomcat запускается через командный файл - PullRequest
1 голос
/ 13 февраля 2012

Можно ли изменить определенный пакетный файл для Tomcat таким образом, чтобы перед запуском Tomcat, настроенного в качестве веб-службы, выполнялось что-то вроде проверки или изменения некоторых файлов?

Так что мы хотим, чтобы каждый разЗапускается служба Tomcat, выполните некоторые изменения для некоторых конкретных файлов, необходимых для приложения, размещенного на tomcat.

Если это возможно сделать с помощью одного из пакетных файлов в Tomcat, то какой пакетный файл следует изменить??Любые идеи будут высоко оценены.Кстати, мы используем tomcat 7.

1 Ответ

0 голосов
/ 30 марта 2012

Краткий ответ: Это НЕ возможно, по крайней мере, не существует простого способа сделать это, как это обсуждалось на странице, на которую указал Шашанк Кадне.Кроме запуска Tomcat через startup.bat скрипт и помещения вашего кода (или вызова вашего BAT-файла) в файл setenv.bat в той же папке, что и startup.bat.


Если вы пытаетесьчтобы запускать такие приложения, как Jenkins, Artifactory и другие, в одной установке Tomcat - как обсуждалось на этой странице - лучшим способом было бы создать экземпляр сервера Tomcat (также известный как CATALINA_BASE) для каждого дополнительного приложения.

Таким образом, вы можете использовать каждое приложение в качестве службы Windows и управлять им как службой.

Допущения:

  • У вас установлена ​​Java на C:\Program Files\Java\jdk-7.0_03.

  • Ваш Tomcat установлен на C:\Program Files\Apache\Tomcat 7.

  • Вы хотите, например, чтобы сервер Jenkins был на C:\Program Files\My Jenkins.

Запустите cmd.exe и выполните следующее:

    C:\Users\me> set "JAVA_HOME=C:\Program Files\Java\jdk-7.0_03"
    C:\Users\me> set "CATALINA_HOME=C:\Program Files\Apache\Tomcat 7"
    C:\Users\me> set "CATALINA_BASE=C:\Program Files\My Jenkins"
    C:\Users\me> cd "%CATALINA_BASE%"
    C:\Program Files\My Jenkins> mkdir "%CATALINA_BASE%\bin"
    C:\...Jenkins> mkdir "%CATALINA_BASE%\conf"
    C:\...Jenkins> mkdir "%CATALINA_BASE%\lib"
    C:\...Jenkins> mkdir "%CATALINA_BASE%\logs"
    C:\...Jenkins> mkdir "%CATALINA_BASE%\temp"
    C:\...Jenkins> mkdir "%CATALINA_BASE%\webapps"
    C:\...Jenkins> mkdir "%CATALINA_BASE%\work"
    C:\...Jenkins> copy "%CATALINA_HOME%\conf\*.*" "%CATALINA_BASE%\conf"
    C:\...Jenkins> copy "%CATALINA_HOME%\bin\*.exe" "%CATALINA_BASE%\bin"
    C:\...Jenkins> copy "%CATALINA_HOME%\bin\tomcat-juli.jar" "%CATALINA_BASE%\bin"
    C:\...Jenkins> cd bin
    C:\...Jenkins> ren tomcat7.exe jenkins.exe
    C:\...Jenkins> ren tomcat7w.exe jenkinsw.exe

Следующая команда должна быть в одной строке

    C:\...Jenkins> jenkins.exe //IS//Jenkins --DisplayName "Jenkins CI"
      --Description "Jenkins Continuous Integration Server on Tomcat"
      --Startup auto --JavaHome "%JAVA_HOME%" --StartMode jvm --StopMode jvm
      --StartClass org.apache.catalina.startup.Bootstrap
      --StopClass org.apache.catalina.startup.Bootstrap
      --StartParams start --StopParams stop
      --Classpath "%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;"
      --StdOutput auto --StdError auto --LogLevel INFO
      --LogPath "%CATALINA_BASE%\logs"
      --JvmOptions -Xrs;-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;

Теперь у вас должно быть Jenkins CIслужба в окне «Службы».

Разверните веб-приложение Jenkins (файл WAR) в %CATALINA_BASE%\webapps.

Шаги, которые я дал выше, исходят «из головы» и не проверены, возможно, я пропустил один или два параметра.Вот почему есть %CATALINA_BASE%\bin\jenkinsw.exe - запустите его и настройте параметры, пока сервер не заработает.

...