jbpm5.1介紹(11)
Jbpm-gwt-console原始碼編譯
從svn下載,svn的下載地址是
http://anonsvn.jboss.org/repos/soag/bpm-console/tags/bpm-console-2.1
下載之後使用mvn進行編譯
當中遇到本很多問題,可以通過以下的網站進行jar包的查詢和處理
https://repository.sonatype.org/index.html#welcome mvn倉庫
http://www.java2s.com/ jar包查詢
http://grepcode.com/ jar包查詢
因為本地使用的是nexus,所以可能有一些jar包找不到,那麼可以先下載jar包下來,根據提示加入到第三方jar倉庫中就可以了。
經過一上午的折騰,基本上沒什麼問題了
匯入到eclipse並且執行
程式結構
控制檯由三個不同部分:UI的控制檯,控制檯伺服器和整合層。
結構圖
控制檯使用者介面是一個Ajax Web應用程式,使用HTTP進行通訊。伺服器模組本身,釋出了一個REST門面給控制檯使用者呼叫來執行實際的請求。
流程引擎是通過一個整合層分離。整合API是控制檯專案的一部分,而該層的實際執行情況與流程引擎所在。伺服器模組在執行時使用一個服務載入機制,通過整合層的訪問流程引擎。
在官方給的樣例中使用的是GWT的RequestBuilder呼叫RPC的服務列表
GWT除了可以使用RPC來通訊外,還可以使用普通的GET POST來發送請求。
//建立請求的Builder RequestBuilder builder=new RequestBuilder(RequestBuilder.POST,GWT.getHostPageBaseURL()+"a.txt"); //設定超時時間 builder.setTimeoutMillis(10000); Request req=builder.sendRequest(null, new RequestCallback() { @Override public void onResponseReceived(Request request, Response response) { //正常返回(code=200) if(response.getStatusCode()==Response.SC_OK){ com.google.gwt.user.client.Window.alert(response.getText()); } } @Override public void onError(Request request, Throwable exception) { //如果發生超時異常 if(exception instanceof RequestTimeoutException){ } } });
釋出的RPC介面列表
1,伺服器資訊 一般REST伺服器資訊
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
GET |
/gwt-console-server/rs/server/status |
得到服務的執行狀態 |
application/json |
GET |
/gwt-console-server/rs/server/resources |
得到服務的資源列表 |
text/html |
2,流程管理 流程相關資料
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
POST |
/gwt-console-server/rs/process/definition/{id}/new_instance |
定義新的流程 |
application/json |
POST |
/gwt-console-server/rs/process/instance/{id}/state/{next} |
得到指定流程例項狀態 |
application/json |
GET |
/gwt-console-server/rs/process/definition/{id}/image |
得到相關圖片 |
image/* |
GET |
/gwt-console-server/rs/process/instance/{id}/activeNodeInfo |
得到所有活動結點資訊 |
application/json |
GET |
/gwt-console-server/rs/process/definition/history/{id}/nodeInfo |
得到所有歷史節點資訊 |
application/json |
GET |
/gwt-console-server/rs/process/definitions |
得到流程定義 |
application/json |
POST |
/gwt-console-server/rs/process/definition/{id}/remove |
刪除流程定義 |
application/json |
GET |
/gwt-console-server/rs/process/definition/{id}/instances |
得到流程中所有例項 |
application/json |
GET |
/gwt-console-server/rs/process/instance/{id}/dataset |
得到統計資訊 |
text/xml |
POST |
/gwt-console-server/rs/process/instance/{id}/end/{result} |
例項執行結果 |
application/json |
POST |
/gwt-console-server/rs/process/instance/{id}/delete |
刪除指定例項 |
application/json |
POST |
/gwt-console-server/rs/process/tokens/{id}/transition |
得到流程下一個狀態 |
application/json |
POST |
/gwt-console-server/rs/process/tokens/{id}/transition/default |
得到流程預設狀態 |
application/json |
3,任務列表 訪問任務列表
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
GET |
/gwt-console-server/rs/tasks/{idRef} |
任務列表 |
application/json |
GET |
/gwt-console-server/rs/tasks/{idRef}/participation |
參與的任務列表 |
application/json |
4,任務管理 管理任務例項
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
POST |
/gwt-console-server/rs/task/{taskId}/assign/{ifRef} |
指定分配的任務 |
application/json |
POST |
/gwt-console-server/rs/task/{taskId}/release |
釋出的任務 |
application/json |
POST |
/gwt-console-server/rs/task/{taskId}/close |
關閉的任務 |
application/json |
POST |
/gwt-console-server/rs/task/{taskId}/close/{outcome} |
來自外部關閉的任務 |
application/json |
5,使用者管理 管理使用者和組
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
POST |
/gwt-console-server/rs/identity/sid/invalidate |
已經停止的使用者 |
text/plain |
GET |
/gwt-console-server/rs/identity/sid |
得到使用者的身份 |
text/plain |
GET |
/gwt-console-server/rs/identity/secure/sid |
得到安全的使用者的身份 |
text/plain |
GET |
/gwt-console-server/rs/identity/user/roles |
得到使用者的角色 |
application/json |
GET |
/gwt-console-server/rs/identity/user/{actorId}/groups/ |
得到指定角色的使用者和組 |
application/json |
GET |
/gwt-console-server/rs/identity/group/{groupName}/members |
得到指定組的成員 |
application/json |
GET |
/gwt-console-server/rs/identity/user/{actorId}/actors |
得到相同角色的使用者 |
application/json |
6,流程引擎 流程的執行時狀態
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
GET |
/gwt-console-server/rs/engine/deployments |
已經部署的引擎 |
application/json |
POST |
/gwt-console-server/rs/engine/deployment/{id}/delete |
刪除指定id的引擎 |
application/json |
POST |
/gwt-console-server/rs/engine/deployment/{id}/suspend |
暫停指定id的引擎 |
application/json |
GET |
/gwt-console-server/rs/engine/jobs |
得到正在工作的引擎 |
application/json |
POST |
/gwt-console-server/rs/engine/job/{id}/execute |
執行指定的引擎 |
application/json |
POST |
/gwt-console-server/rs/engine/deployment/{id}/resume |
恢復指定id的引擎 |
application/json |
7,表格處理 基於web的處理
方式 |
路徑 |
描述 |
結果 |
---|---|---|---|
GET |
/gwt-console-server/rs/form/task/{id}/render |
指定id的任務 |
text/html |
GET |
/gwt-console-server/rs/form/process/{id}/render |
指定id的流程 |
text/html |
POST |
/gwt-console-server/rs/form/task/{id}/complete |
完成指定id的任務 |
text/html |
POST |
/gwt-console-server/rs/form/process/{id}/complete |
完成指定id的流程 |
text/html |
以上介面還有待測試。