activities5项目包括activities-rest模块,该模块负责提供rest接口操作工作流,实现项目的组件架构。
activities5的rest是由restlet实现的。
首先将activities5-rest部署到tomcat服务器,那么默认的访问地址是:http://localhost:8080/activiti-rest/service/ 开头。
部署好项目以后就可以访问了rest接口了。
要访问rest接口,那么需要restlet依赖。
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>5.14</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.servlet</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.jackson</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.fileupload</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.json</artifactId>
<version>2.0.0</version>
</dependency>
有了该依赖以后,那么就可以编写java代码访问了。
以下是一个登陆的操作:
ClientResource client = new ClientResource("http://localhost:8080/activiti-rest/service/login");
ObjectNode requestNode = objectMapper.createObjectNode();
requestNode.put("userId", "kermit");
requestNode.put("password", "kermit");
Representation response = client.post(requestNode,MediaType.APPLICATION_JSON);
返回的数据是json,接下来就是处理json的问题了
以下是一个查询任务的操作:
ClientResource client = getAuthenticatedClient("activiti-rest/service/query/tasks");
ObjectNode requestNode = objectMapper.createObjectNode();
requestNode.put("assigneeLike", "kermit");
Representation response = client.post(requestNode,MediaType.APPLICATION_JSON);
JSONObject obj = new JSONObject(response.getText());
JSONArray arry = new JSONArray(obj.getJSONArray("data").toString());
for(int i=0;i<arry.length();i++){
JSONObject obj2 = new JSONObject(arry.get(i).toString());
System.out.println(obj2.toString());
System.out.println(obj2.get("description"));
}
注意有个权限认证,以下是权限认证的代码
protected ClientResource getAuthenticatedClient(String uri) {
ClientResource client = new ClientResource("http://localhost:8080/" + uri);
client.setChallengeResponse(ChallengeScheme.HTTP_BASIC, "kermit", "kermit");
return client;
}
那么这样子你就可以像访问本地的activities-engine一样,来进行工作流的操作了。
这样子终于可以搜索到activiti-restjava开发的demo了,打破了搜不到activities-rest Demo的空白,我好伟大呀。