来自Java代码的Activiti工作流调用

时间:2011-07-19 00:47:09

标签: java concurrency process runtime activiti

我正在创建一个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 个答案:

答案 0 :(得分:1)

确保您正在从该过程中读取stdout和stderr。