天天看點

Activiti工作流引擎使用(Activiti的亂碼問題)

Activiti工作流引擎使用(Activiti的亂碼問題)

1.簡單介工作流引擎與Activiti

對于工作流引擎的解釋請參考百度百科:工作流引擎

Activiti與JBPM5?對于Activiti、jBPM4、jBPM5我們應該如何選擇,在InfoQ上有一篇文章寫的很好,從大的層面比較各個引擎之間的差異,請參考文章:縱觀jBPM:從jBPM3到jBPM5以及Activiti5。

學習位址:基于Activiti5工作流實戰企業協同OA辦公系統(spring-data-jpa、uur前台元件)http://www.ibeifeng.com/goods-343.html

學習位址:國内首部基于JBPM5.4實戰流程引擎開發(動态表單、模闆引擎、公文管理系統) http://www.ibeifeng.com/goods-311.html

2.部署流程圖後中文亂碼

亂碼是一直纏繞着國人的問題,Activiti的亂碼問題在流程圖中。

流程圖的亂碼如下圖所示:

Activiti工作流引擎使用(Activiti的亂碼問題)

北風網介紹兩種解決辦法:

2.1. 修改源代碼方式

修改源碼:org.activiti.engine.impl.bpmn.diagram.ProcessDiagramCanvas

在構造方法:

public ProcessDiagramCanvas(int width, int height)

中有一行代碼是設定字型的,預設是用 Arial 字型,這就是亂碼産生的原因,把字改為本地的中文字型即可,例如:

Font font = new Font("WenQuanYi Micro Hei", Font.BOLD, 11);

當然如果你有配置檔案讀取工具那麼可以設定在*.properties檔案中,我就是這麼做的:

Font font = new Font(PropertyFileUtil.get("activiti.diagram.canvas.font"), Font.BOLD, 11);

2.2 使用壓縮包方式部署

Activiti支援部署*.bpmn20.xml、bar、zip格式的流程定義。

使用Activit Deisigner工具設計流程圖的時候會有三個類型的檔案:

.activiti設計工具使用的檔案

.bpmn20.xml設計工具自動根據.activiti檔案生成的xml檔案

.png流程圖圖檔

解決辦法就是把xml檔案和圖檔檔案同時部署,因為在單獨部署xml檔案的時候Activiti會自動生成一張流程圖的圖檔檔案,但是這樣在使用的時候坐标和圖檔對應不起來……

是以把xml和圖檔同時部署的時候Activiti自動關聯xml和圖檔,當需要擷取圖檔的時候直接傳回部署時壓縮包裡面的圖檔檔案,而不是Activiti自動生成的圖檔檔案

2.2.1 使用工具打包Bar檔案

右鍵項目名稱然後點選“Create deployment artifacts”,會在src目錄中建立deployment檔案夾,裡面包含*.bar檔案.

2.2.2 使用Ant腳本打包Zip檔案

這也是我們采用的辦法,你可以手動選擇xml和png打包成zip格式的檔案,也可以像我們一樣采用ant target的方式打包這兩個檔案。

Activiti工作流引擎使用(Activiti的亂碼問題)

這樣當修改流程定義檔案後隻要運作ant指令就可以打包了:

ant workflow.package.oa.leave

現在部署bar或者zip檔案檢視流程圖圖檔就不是亂碼了,而是你的壓縮包裡面的png檔案.

更多資源下載下傳:http://www.ibeifeng.com/source_list.html