activiti根据流程实例id查询资源文件(xml、image)

/**
 * 读取资源,通过部署ID
 *
 * @param processDefinitionId
 *            流程定义
 * @param resourceType
 *            资源类型(xml|image)
 * @throws Exception
 */
@RequestMapping(value = "/resource/read")
public void loadByDeployment(@RequestParam("processDefinitionId") String processDefinitionId,
        @RequestParam("resourceType") String resourceType, HttpServletResponse response){
    ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
            .processDefinitionId(processDefinitionId).singleResult();

    String resourceName = "";
    if (resourceType.equals("image")) {
        resourceName = processDefinition.getDiagramResourceName();
    } else if (resourceType.equals("xml")) {
        resourceName = processDefinition.getResourceName();
    }
    InputStream resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(),
            resourceName);
    byte[] b = new byte[1024];
    int len = -1;
    try {
        while ((len = resourceAsStream.read(b, 0, 1024)) != -1) {
            response.getOutputStream().write(b, 0, len);
        }
    } catch (IOException e) {
        log.error("查询流程资源失败", e);
    }
}

猜你喜欢

转载自blog.csdn.net/chen_lay/article/details/78332475