2017-08-10 125 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

這會給你一個例外的足夠的細節。