2016-07-25 25 views
6

我想在工作流(activiti)中處理web服務異常。在這裏我剛剛創建了一個示例過程,我在其中調用通過Service Task引發異常的Web服務之一(無子過程)。 爲了處理這個異常,我添加了邊界錯誤事件,並給出了錯誤引用「myError」(與代碼中相同)。雖然我試圖部署,但出現錯誤爲活動中的錯誤處理

Attribute 'attachedToRef' must appear on element 'boundaryEvent'. 

在activiti modeler中,我沒有找到屬性爲'attachedToRef'。

Here is the workflow process,which i want to deploy

任何人都可以請幫我解決這個錯誤。

回答

0

我不認爲你可以在Activiti中以這種方式處理這種異常。或者,你可以做的是創建一個類,通過這個類調用你的Web服務,並在服務任務中輸入相同的內容。

希望它幫助...

+0

我做同樣的我的服務任務,服務任務,我給我的類名的全路徑的階級屬性和階級內部通過playClient調用Web服務,我的邏輯是在try和catch塊內部,我可以得到一個異常。 這裏的問題是activiti不允許部署過程本身。它是要求attachedRef屬性。 可以請你首先告訴我activiti modeler –

+1

該屬性的路徑:不要將邊界捕獲事件用於服務任務。它永遠不會那樣工作。第二:當發生異常時,您可以更改流程變量,並且在完成服務任務時,您可以擁有專用網關來檢查流程變量是否已被修改。並繼續相應的過程。 –

+0

感謝您的快速響應。我有疑問,如何將錯誤轉發到工作流程的下一步。我想向最終用戶顯示相同的錯誤。 –

0

可以用於錯誤處理創建子進程:

<process id="1" isClosed="false" isExecutable="true" processType="None"> 
     **main process tasks** 
<subProcess activiti:exclusive="true" id="eventSP" triggeredByEvent="true"> 
    <startEvent id="startError" name="StartErrorEvent"> 
    <errorEventDefinition id="_5"/> 
    </startEvent> 
    <serviceTask> 
    **tasks for error** 
    </serviceTask> 
</subProcess> 
</process> 

有關錯誤子過程中,你已經創建單獨的類(或不便)和執行邏輯爲了錯誤。

或者,如果你想使像邊界例外閱讀activiti user guide