Как запустить и остановить Tomcat, используя Java-код? - PullRequest
8 голосов
/ 10 марта 2011

Как запустить и остановить tomcat, используя Java-код?

Ответы [ 5 ]

16 голосов
/ 12 мая 2012

Вы можете отправить команду отключения на порт отключения, оба из которых можно настроить в корневом элементе файла server.xml Tomcat.

По шагам:

Шаг 1

Настройте файл CATALINA_HOME / conf / server.xml следующим образом:

<Server port="8005" shutdown="myShutDownCommand">

Порт атрибута является необязательным.Если он опущен, используется значение по умолчанию, 8005.

Значение атрибута shutdown может быть любым.Это не должно быть известно другим.

Шаг 2

Заставить java-программу отправить команду завершения работы myShutDownCommand с использованием класса java.net.Socket на порт завершения8005.

try { 
    Socket socket = new Socket("localhost", 8005); 
    if (socket.isConnected()) { 
        PrintWriter pw = new PrintWriter(socket.getOutputStream(), true); 
        pw.println("myShutDownCommand");//send shut down command 
        pw.close(); 
        socket.close(); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
}
13 голосов
/ 10 марта 2011

Вам необходимо выполнить main метод org.apache.catalina.startup.Bootstrap с параметром "start".

Вам также понадобятся следующие вещи:

  • , чтобы в вашем * * * * * *classpath;
  • -Dcatalina.base для указания на $TOMCAT_HOME
  • -Dcatalina.home для указания на $TOMCAT_HOME
  • -Djava.io.tmpdir для указания на временный каталог (обычно $TOMCAT_HOME/temp)

У меня также есть набор параметров -noverify, не уверен, всегда ли это необходимо.

ps было бы неплохо, если бы вы могли начать принимать ответы, ваш текущийставка 0 / 28.

8 голосов
/ 10 марта 2011

Вы можете выполнять собственные команды, используя java

String command = "c:\program files\tomcat\bin\startup.bat";//for linux use .sh
Process child = Runtime.getRuntime().exec(command);
0 голосов
/ 05 июля 2019

Запустите (и остановите) встроенный Tomcat. Как это сделать, хорошо документировано, например здесь .

0 голосов
/ 05 июля 2019

Для пользователей Linux, попробуйте это:

Runtime run = Runtime.getRuntime();
Process pr = run.exec("sh startup.sh", null, new File("filePath"));
filePathexample = /home/example/apache-tomcat-8.0.47/bin/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...