2013-09-30 3 views
5

У меня есть требование написать java-программу для удаленного запуска остановки сервера jboss по запросу. Кто-нибудь может предложить, как это можно сделать? Один из вариантов может быть вызван скриптом start/stop, но эта java-программа (может быть сервлет или jsp) существует на другой машине. Мы используем сервер jboss 7.Удаленная остановка сервера jboss

ответ

5

Простой метод для запуска и остановки Jboss удаленно может быть выполнен с помощью сценария run.sh и shutdown.sh, указывая на правильный хост и порт. Если вы находитесь на Linux вы можете запустить:

rsh [email protected] /path/to/jboss/bin/run.sh 
rsh [email protected] /path/to/jboss/bin/shutdown.sh 

Вы также можете выполнить команду оболочки с Java, вы можете использовать Runtime EXEC mewthod:

Runtime.getRuntime().exec("shell command here"); 

Смотреть это полный answer для получения более подробной информации о Java Exec метод.


Лучшей альтернативой я хотел бы предложить, чтобы использовать JMX-консоль программным, вы можете остановить/перезапустить JBoss входом в инстанс, вызвав метод отключения на сервере MBean. Подход JMX более мощный, потому что вы можете контролировать и управлять всеми аспектами исполняемого файла Jboss (например, протоколирование, память или процессор). См. this.

Я создал фрагмент кода, чтобы облегчить ваш старт см этот рабочий раствор http://snipt.org/Ahhjh4

Запомнить:

  • создать пользователя JBoss на экземпляре JBoss с помощью add-user.sh (JBOSS_HOME/бен)
  • включают JBoss-client.jar в клиентском классе-пути (баночка в JBOSS_HOME/бен/клиент)

Удачи!

+0

Спасибо за сообщение. Я бы предпочел сделать это через разъем JMX. Как только я получу управление JMXConnector и MBeanServerConnection работающего Jboss AS. Как остановить и перезапустить AS. Я ценю вашу помощь в этом. – user458580

+0

Я отредактировал ответ, добавив полный фрагмент решения. – zerologiko

+0

Еще раз спасибо за этот хороший пример. Моя проблема в том, что мне нужно запустить и остановить сервер jboss в разное время. Как только я остановлю сервер, я, возможно, не смогу получить ручку Mbean, чтобы запустить ее снова. Можно ли остановить jboss с некоторыми из Mbean, чтобы он мог быть запущен снова в будущем, конечно, удаленно. – user458580

Смежные вопросы