java - Java代码中的Activiti工作流调用

标签 java concurrency process runtime activiti

我正在创建一个 Activiti Controller ,它可以监听消息并根据需要 fork 进程。

我一直在尝试使用java:

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

因为当我运行普通的 java 可执行 jar 时它工作得很好,但是在运行导出的 Activiti 项目的情况下,调用似乎会挂起,直到 Activiti Controller 完成为止。

Controller :

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

收到消息后,所有打印都会显示,包括返回到循环顶部。但直到我强行关闭应用程序,或完全删除 while 循环,该进程才真正运行。

当 Controller 代码完成时,可以在命令行中看到整个 Activiti jar 已完成。

** 这不仅仅是保存输出并在最后显示它,我知道这一点是因为工作流程将消息传递到我可以监视 Activiti 的其他服务。

** 我尝试使用 runnable 和 thread 来代替,将 exec 放入另一个类中,并表现出相同的行为。

最佳答案

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

关于java - Java代码中的Activiti工作流调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6741132/

相关文章:

java - Sonar 管 : "Project configuration file: NONE "

java - 线程对象在哪里创建?堆栈还是堆?

windows - 在 Windows 中 hibernate 整个进程

android - 当进程被终止时,AlarmManager 中的警报被删除

java - 是否应该实例化实用程序类?

javascript - Node JS - 在新进程中执行一串代码

java - 仅在选定设备上的 Listview 上出现 Android Stackoverflow 错误

java - 在 Phonegap (Java Android) 中运行 native 代码

java - 如何找到 ListView 中每行值的总和(使用 arrayList.add() 添加行)

Django + Postgresql -> 未处理的异常