0

我正在创建一个 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 放入另一个类并表现出相同的行为。

4

1 回答 1

1

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

于 2011-07-19T01:10:43.057 回答