Вызов рабочего процесса Activiti из кода Java - PullRequest
0 голосов
/ 19 июля 2011

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

Я пытался использовать Java:

Process p = Runtime.getRuntime().exec("java -jar ...");

, так как работает нормально, когда я запускаю обычные java-исполняемые файлы jar, но в случае запуска экспортируемых проектов Activiti вызов, похоже, зависает до завершения работы контроллера Activiti.

Контроллер:

while(1){
    print "listening"
    recv message
    print "executing"
    exec process
    print "done"
}

При получении сообщения отображаются все отпечатки, включая возврат к началу цикла. Но до тех пор, пока я не закрою приложение принудительно или не удалим цикл while полностью, процесс фактически не будет запущен.

Когда код контроллера завершен, в командной строке можно увидеть весь файл Activiti jar.

** Это не просто удержание вывода и его отображение в конце, я знаю это, потому что рабочий процесс передает сообщения другим службам, которые я могу отслеживать для Activiti.

** Я попытался использовать runnable и thread вместо этого, поместив exec в другой класс, и то же поведение демонстрируется.

1 Ответ

1 голос
/ 19 июля 2011

Убедитесь, что вы читаете stdout и stderr из процесса.

...