Java-процесс для уведомления о завершении загрузки пружины оболочки - PullRequest
0 голосов
/ 13 октября 2011

Я использую Spring в автономном веб-приложении, что означает, что в нем нет контейнера сервлета, а скорее он работает на компьютере JVM:

public class A {
    public static void main(String[] args) throws Exception {       
        AbstractApplicationContext  context = new ClassPathXmlApplicationContext("applicationContext.xml");
        context.registerShutdownHook();
    }   
}

После сборки я запускаю его из оболочки bash следующим образом, для простоты назовем его процессом 'main' и предположим, что он запускается в сценарии оболочки:

me@local$ java A

Эта команда запускает JVM и запускает указанную выше основную функцию в процессе main, эта основная функция никогда не возвращается и, таким образом:

  1. Мне трудно понять, как процесс уведомит оболочку. с любого события весной. Я использую JMX для мониторинга процесса и мне нужен корпус, чтобы быть в курсе завершения весенней нагрузки для он используется для запуска других процессов, которые зависят от этого процесса 'main' и скрипт bash.
  2. Скрипт, где запускается процесс не может продолжаться.

Для пункта 2 очевидный ответ:

me@local$ java A &

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

Заранее спасибо.

1 Ответ

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

Почему недостаточно просто вывести что-то на консоль после того, как ваше приложение будет готово?Кроме того, вы можете подключиться через jmx сразу после запуска java-процесса, а затем вы можете отслеживать компоненты jmx.

...