67,538
社区成员
发帖
与我相关
我的任务
分享
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*, org.jbpm.api.*, org.jbpm.api.model.*" %>
<%
String path = request.getContextPath();
%>
<%
String processInstanceId = request.getParameter("id");
ProcessEngine processEngine = Configuration.getProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
ProcessInstance processInstance = executionService.findProcessInstanceById(processInstanceId);
Set<String> activeNames = processInstance.findActiveActivityNames();
ActivityCoordinates ac = repositoryService.getActivityCoordinates(processInstance.getProcessDefinitionId(), activeNames.iterator().next());
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'view.jsp' starting page</title>
</head>
<body>
<img src="<%=path %>/jbpm/jbpm_drawImage?id=<%=processInstanceId %>" style="position:absolute; left: 0px; top: 0px;"/>
<div style="position:absolute; border:1px solid #cc0000; left:<%=ac.getX() %>px; top: <%=ac.getY() %>px; width: <%=ac.getWidth() %>px; height: <%=ac.getHeight() %>px;"></div>
</body>
</html>
public String drawImage() throws IOException {
String processInstanceId = request.getParameter("id");
ProcessEngine processEngine = Configuration.getProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
ProcessInstance processInstance = executionService.findProcessInstanceById(processInstanceId);
String processDefinitionId = processInstance.getProcessDefinitionId();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionId(processDefinitionId)
.uniqueResult();
InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), processDefinition.getImageResourceName());
System.err.println(processDefinition.getImageResourceName()); //输出结果为leave.png,是正确的
byte[] b = new byte[1024*4];
int len = -1;
while((len = inputStream.read(b, 0, 1024*4)) != -1) {
System.err.println(len);//输出结果为2518,说明有读取到数据
response.getOutputStream().write(b, 0, len);
}
return null;
}