Запуск Java-приложения как сервиса - PullRequest
2 голосов
/ 28 сентября 2011

У нас есть Java-приложение, которое по сути является длительным процессом. Он развернут на JBoss 6.1. Мы должны начать это, перейдя на URL http://ip.ip.ip.ip:8080/MyApp/Monitor

Есть ли способ, которым мы могли бы запустить его как службу через cli с некоторой возможностью запускать / останавливать / перезапускать при необходимости?

Ответы [ 5 ]

4 голосов
/ 28 сентября 2011

Если это единственное приложение, работающее на экземпляре JBoss, вы можете настроить JBoss на автоматический запуск приложения при запуске, а затем выполнить шаги в http://community.jboss.org/wiki/JBossSystemService для запуска JBoss в качестве службы.

Если у вас есть другие приложения на экземпляре JBoss или вы хотите запускать / останавливать только приложение, а не весь сервер, вы можете написать приложение Java, которое подключается к вашему экземпляру JBoss удаленно с помощью Java Management Extensions и использовать JMX Beans предоставленный JBoss для запуска / остановки вашего приложения. Подробнее об интерфейсе JBoss JMX можно найти в http://docs.jboss.org/jbossas/jboss4guide/r2/html/ch2.chapter.html Я знаю, что это JBoss 4, но я не думаю, что они отказались от поддержки JMX в более новых версиях.

0 голосов
/ 05 октября 2011

Я бы порекомендовал использовать Apache Commons Daemon (или, может быть, YAJSW), чтобы создать свой собственный класс контроллера оболочки. Примером этого является , показанное здесь . Контроллер-обёртка расширяет класс Daemon Commons-Daemon и может запускаться в командной строке в виде:

java -cp . WrapperController.class -windowsStop
java -cp . WrapperController.class -windowsStart
java -cp . WrapperController.class -verify

Конечно, вы можете расширить пример, чтобы иметь собственный объект SysTray. Вы также можете реализовать свой класс контроллера в виде скрипта Beanshell, чтобы он не нуждался в предварительно скомпилированном классе для запуска.

0 голосов
/ 28 сентября 2011

Вы можете включить его в службу windows / unix, используя

Оболочка Java-сервиса

0 голосов
/ 28 сентября 2011

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

Пример :

public class MonitorService{

 ..

 public static void main(String[] args) {
  if(args[0].equalsIgnoreCase("-start")
  {
    //Do start routine
  }
  else if(args[0].equalsIgnoreCase("-stop")
  {
    //Do stop routine
  }
 }

 ...

}

Запустите программу следующим образом.

Java MonitorService -start
0 голосов
/ 28 сентября 2011

Сделать это консольным приложением?

public static void main(String [] args)
{
    doStuffThatMyAppMonitorNormallyDoes();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...