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 |
以上接口还有待测试。