2017-08-10 85 views
2

我的项目中有一个Activiti工作流程。它包含多个服务任务,这些任务执行的逻辑并不重要,并可能由于多种原因而失败。Activiti Rest异常处理

我将Activiti作为REST独立应用程序部署。

当我调用Activiti REST API并且失败时出现一些错误,它将返回“500内部服务器错误”,而没有任何详细信息,并得到问题原因,我需要检查日志。

我试图在过程变量中存储问题原因,并在失败后使用附加请求检查这些变量,但似乎不正确,因为此错误可能会被随后的请求覆盖。 (并发问题)

那么,请问如何解决使用Activiti REST API的服务任务问题?如果没有额外的要求,这将是件好事。

+0

在您的情况中,最好的方法可能是推出自己的API,补充Activiti的原生API,以便返回您需要的信息。请注意,异步服务任务中的错误不会被初始调用“看到”。 –

+0

你可以请你的问题更具体吗?一小段代码会有帮助。您可以在最新版本的activiti中拥有边界事件和异常处理程序。 – yaswanth

+0

例如服务任务witj下面的代码:{if(random%2 == 0)throw new exception1()else throw new exception 2()}我怎么知道哪个特定的异常是通过rest api抛出的? – evgeniy44

回答

1

我已经为异常记录的activiti编写了一些代码,可以将工作流中可能发生的任何异常保存到数据库中。此代码仍未合并到activiti中,但您可以将其用于测试目的。

你可以在这里找到代码: https://github.com/anoopvrma/Activiti/tree/resume-process

这会给你一个例外的足够的细节。