一、传参数
1、restful传
service调用
@RequestMapping("/act/delDeployById/{deployId}")
public void delDeployById(@PathVariable("deployId") String deployId);
服务controller
@RequestMapping("/act/delDeployById/{deployId}")
public void delDeployById(@PathVariable("deployId") String deployId){
2、通过参数实体传送,通过把所有参数放到Map里边
service调用
@RequestMapping("/act/queryProDefList")
public List<Map<String, Object>> queryProDefList(@RequestBody Map<String,Object>paramMap);
服务controller
@RequestMapping("/act/queryProDefList")
public List<Map<String, Object>> queryProDefList(@RequestBody Map<String,Object>paramMap){
Integer startIndex = (Integer) paramMap.get("startIndex");
Integer pageSize = (Integer) paramMap.get("pageSize");
}
3、通过restTemplate调用服务
上传文件(意思就是上传以后然后部署activiti流程)
@ResponseBody
@RequestMapping("/upload")
public Object upload(HttpServletRequest req){
start();
try {
MultipartHttpServletRequest request = (MultipartHttpServletRequest)req;
MultipartFile file = request.getFile("procDefFile");
System.out.println(file.getName());
System.out.println(file.getOriginalFilename());
String filename = file.getOriginalFilename();
String uuid = UUID.randomUUID().toString();
File createTempFile = File.createTempFile(uuid, filename.substring(filename.lastIndexOf(".") ));
file.transferTo(createTempFile);
FileSystemResource resource = new FileSystemResource(createTempFile);
MultiValueMap<String, Object> param = new LinkedMultiValueMap<String, Object>();
param.add("pdfile", resource);
String postForObject = restTemplate.postForObject("http://atcrowdfunding-activiti-service/act/deploy", param,String.class);
System.out.println("result"+postForObject);
createTempFile.delete();
success(true);
} catch (Exception e) {
e.printStackTrace();
success(false);
}
return end();
}
@RequestMapping("/act/deploy")
public String deploy(@RequestParam("pdfile") MultipartFile file){
start();
try {
repositoryService.createDeployment()
.addInputStream(file.getOriginalFilename(), file.getInputStream())
.deploy();
return "成功";
} catch (Exception e) {
e.printStackTrace();
return "失败";
}
}
四、加载图片(把图片下载下来)
@ResponseBody
@RequestMapping("/load")
public void load(String pdid,HttpServletResponse resp) throws Exception{
//通过响应头返回图形信息
HttpHeaders httpHeader = new HttpHeaders();
httpHeader.setContentType(MediaType.IMAGE_PNG);
String url="http://atcrowdfunding-activiti-service/act/loadImgById/"+pdid;
ResponseEntity<byte[]> reponse=restTemplate.exchange(url,HttpMethod.POST,
new HttpEntity<byte[]>(httpHeader), byte[].class);
byte[] result = reponse.getBody();
InputStream in = new ByteArrayInputStream(result);
OutputStream out = resp.getOutputStream();
int i = -1;
while((i=in.read())!=-1){
out.write(i);
}
}
@RequestMapping("/act/loadImgById/{pdid}")
public byte[] loadImgById(@PathVariable("pdid") String pdid) throws Exception{
ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
ProcessDefinition singleResult = query.processDefinitionId(pdid).singleResult();
InputStream in = repositoryService.getResourceAsStream(singleResult.getDeploymentId(), singleResult.getDiagramResourceName());
ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
byte[] buf = new byte[100];
int rc = 0;
while((rc=in.read(buf,0,100))>0){
swapStream.write(buf,0,rc);
}
byte[] byteArray = swapStream.toByteArray();
return byteArray;
}