博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring与jbpm4.4-基本部署(maven)以及一些常用服务的操作
阅读量:5267 次
发布时间:2019-06-14

本文共 17753 字,大约阅读时间需要 59 分钟。

上代码pom.xml

4.1.6.RELEASE
3.6.10.Final
1.6.2.RELEASE
1.7.7
1.2.17
4.11
3.0
2.4
junit
junit
4.11
test
org.freemarker
freemarker
2.3.20
org.springframework
spring-test
${spring.version}
test
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-expression
${spring.version}
org.springframework
spring-orm
${spring.version}
org.springframework.data
spring-data-jpa
${spring-data-jpa}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-aop
${spring.version}
org.aspectj
aspectjrt
1.8.2
org.aspectj
aspectjweaver
1.8.4
javax.validation
validation-api
1.0.0.GA
javassist
javassist
3.12.1.GA
org.hibernate
hibernate-validator
4.2.0.Final
org.hibernate
hibernate-commons-annotations
org.hibernate.common
hibernate-commons-annotations
4.0.2.Final
org.hibernate
hibernate-core
3.6.10.Final
org.hibernate
hibernate-commons-annotations
org.hibernate
hibernate-ehcache
3.6.10.Final
net.sf.ehcache
ehcache
2.10.1
net.sf.ehcache
ehcache-web
2.0.4
javax.mail
mail
1.4.7
c3p0
c3p0
0.9.1.2
oracle
ojdbc14
14
javax.servlet
jstl
1.2
javax.servlet.jsp
jsp-api
2.2.1-b03
provided
log4j
log4j
${log4j.version}
com.alibaba
fastjson
1.1.41
org.slf4j
slf4j-api
${slf4j.version}
org.slf4j
slf4j-log4j12
${slf4j.version}
org.codehaus.jackson
jackson-core-lgpl
1.8.1
org.codehaus.jackson
jackson-mapper-lgpl
1.8.1
net.sf.json-lib
json-lib
${jsonlib.version}
jdk15
commons-fileupload
commons-fileupload
1.3.1
commons-io
commons-io
2.4
commons-codec
commons-codec
1.9

spring.xml

spring-mvc.xml

application/json

spring-jbpm.xml

spring-hibernate.xml

classpath:jbpm.execution.hbm.xml
classpath:jbpm.history.hbm.xml
classpath:jbpm.identity.hbm.xml
classpath:jbpm.repository.hbm.xml
classpath:jbpm.task.hbm.xml
hibernate.dialect=${hibernate.dialect} hibernate.hbm2ddl.auto=${hibernate.hbm2ddl.auto} hibernate.shou_sql=${hibernate.show_sql} hibernate.format_sql=${hibernate.format_sql} hibernate.cache.use_second_level_cache=${hibernate.use_second_level_cache} hibernate.cache.use_query_cache=${hibernate.use_query_cache} hibernate.cache.provider_class=${hibernate.provider_class} hibernate.cache.provider_configuration_file_resource_path=${hibernate.provider_configuration_file_resource_path}

ehcache.xml

jbpm.cfg.xml

baseService.java

package com.erp.service;import java.util.List;import java.util.Map;import org.jbpm.api.ExecutionService;import org.jbpm.api.ProcessInstance;import org.jbpm.api.RepositoryService;import org.jbpm.api.TaskService;import org.jbpm.api.task.Task;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Service("BaseService")public class BaseService {    // 部署流程实例相关    @Autowired    private RepositoryService reService;    // 创建执行流程实例相关    @Autowired    ExecutionService executionService;    // 提供对任务列表的访问接口    @Autowired    TaskService taskService;    // 流程定义的部署    /**     *      * @param filepath     *            xml文件     */    public void respositoryService(String filepath) {        this.reService.createDeployment().addResourceFromClasspath(filepath).deploy();    }    /**     * 删除流程定义(如果带有流程实例没有完成的话会抛出异常,而deleteDeploymentCasecade不会,他会将你的没有完成的流程实例一并删除)     */    public void deleteDeployment(String deploymentId) {        this.reService.deleteDeployment(deploymentId);        System.out.println("删除成功");    }    /**     * 删除流程定义与历史信息     */    public void deleteCacheDeployment(String deploymentId) {        this.reService.deleteDeploymentCascade(deploymentId);        System.out.println("删除成功");    }    /**     *      * @param processDefinitionKey     *            流程实例的key     */    // 创建流程实例    public void initInstanceService(String processDefinitionKey) {        ProcessInstance processInstance = this.executionService.startProcessInstanceByKey(processDefinitionKey);        System.out.println("流程实例ID=======》" + processInstance.getId());    }    public void initInstanceByparameService(String processDefinitionKey, Map
map) { ProcessInstance processInstance = this.executionService.startProcessInstanceByKey(processDefinitionKey, map); System.out.println("流程实例ID------》" + processInstance.getId()); } /** * 删除流程实例 * * @param processInstanceId */ public void deleteInstanceById(String processInstanceId) { this.executionService.deleteProcessInstance(processInstanceId); System.out.println("删除成功"); } // 执行流程 /** * * @param taskId * 活动流程id */ public void completeTaskService(String taskId) { this.taskService.completeTask(taskId); System.err.println("完成成功"); } // executionService.createProcessInstanceQuery().processInstanceId("test.10001").uniqueResult().findActiveActivityNames().toString(); // 根据流程实例Id查询流程所在节点 /** * * @param processDefinitionId * 流程实例Id * @return 流程实例所在节点的name */ public String getCurrectActivity(String processDefinitionId) { String activityName = this.executionService.createProcessInstanceQuery() .processDefinitionId(processDefinitionId).uniqueResult().findActiveActivityNames().toString(); return activityName; } /** * * @param userName * 用户名 * @return 该用户的活动信息 1 任务数量 2 任务id 3 任务名称 4 任务人员 。。。。 */ public List
getTaskByName(String userName) { List
tasks = this.taskService.findPersonalTasks(userName); System.out.println("任务数量==" + tasks.size()); Task task = tasks.get(0); System.out.println("任务名词==" + task.getActivityName()); System.out.println("任务人员==" + task.getAssignee() + "任务ID===" + task.getId()); return null; }}
测试代码
package com.erp.service;import java.util.List;import org.jbpm.api.IdentityService;import org.jbpm.api.TaskService;import org.jbpm.api.task.Task;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestService {    ApplicationContext applicationContext;    BaseService baservice;    IdentityService identityService;    TaskService taskService;    public void init() {        applicationContext = new ClassPathXmlApplicationContext(                new String[] { "spring.xml", "spring-hibernate.xml", "spring-jbpm.xml" });        identityService = (IdentityService) applicationContext.getBean("identityService");        baservice = (BaseService) applicationContext.getBean("BaseService");        taskService = (TaskService) applicationContext.getBean("taskService");    }    public void testTask() {        // helloword.200001        init();        baservice.respositoryService("jbxr/helloworld.jpdl.xml");        System.out.println("部署成功");        // String processInstanceId = "260001";        // this.baservice.deleteCacheDeployment("30001");    }        public void test() {        init();        System.out.println("hellozz");        // Map
maps = new HashMap
(); // UserInfo userInfo = new UserInfo(); // userInfo.setUserName("ss"); // maps.put("UserI", userInfo); // mgrs //String groups = identityService.createGroup("mgrs"); //identityService.createUser("a1", "001giName", "002familyName"); //identityService.createUser("a2", "002giName", "002familyName"); //identityService.createMembership("a1", groups); //identityService.createMembership("a2", groups); baservice.initInstanceService("helloword"); // baservice.initInstanceByparameService("helloword", maps); // helloword.110001 System.out.println("hellozz"); } // //把任务分配给a1 // taskService.takeTask("480002", "a1"); // List
tasks = taskService.findPersonalTasks("a1"); // print("任务数量",tasks.size()); // print("任务名词",tasks.get(0).getActivityName()); // print("任务ID",tasks.get(0).getId()); // // 获取任务列表(获取任务组任务列表) // // 通过findGroupTasks可以拿到组任务。可以显示在每个收到此任务的人的代办任务列表中。 // // List
tasks = taskService.findGroupTasks("a1"); // print("任务数量",tasks.size()); // print("任务名词",tasks.get(0).getActivityName()); // print("任务ID",tasks.get(0).getId()); // // 完成任务 // // taskService.completeTask("390001"); // // 完成任务 public void testcompleteTask() { init(); baservice.completeTaskService("130002"); System.out.println("任务50002完成"); } // 任务分派模式 // // jBPM的任务分派有两种模式,分别是推(push)模式和拉(pull)模式。 // // 推模式是在任务分派的时候,直接将任务实例分派给一个指定的用户,任务实例进入这个用户的个人任务列表中。 // // 拉模式是将任务实例分派给一组用户,这个任务实例会出现在组所有用户的组任务列表中。组用户需要首先将任务实例拉到自己的个人任务列表中才能够执行此任务。当有一个组用户取出了任务实例后,引擎就会将该任务实例从其他的组用户的组任务列表中去除。 @Test public void testgetTask() { init(); // taskService.takeTask("100007", "a1"); //baservice.getTaskByName("a1"); List
tasks = taskService.findGroupTasks("a2"); System.out.println("任务数量" + tasks.size()); System.out.println("任务名词" + tasks.get(0).getActivityName()); System.out.println("任务ID" + tasks.get(0).getId()); }}

 

转载于:https://www.cnblogs.com/holdouts/articles/5811919.html

你可能感兴趣的文章
Ztree异步树加载
查看>>
复杂问题的简单抽象:魔兽世界中的兔子们
查看>>
UVA 10529-Dumb Bones(概率dp)
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
MyEclipse DB Browser使用图文全攻略
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
A - Vasya and Socks
查看>>
项目管理、设计开发、代码管理、bug管理工具介绍
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
linux文件编码查看与修改
查看>>
[Java] 系统环境变量配置
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
HIT1946 希尔伯特分形曲线(dfs)
查看>>
第二次团队冲刺第二天
查看>>
青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 2
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>
11)Java abstract class 和 interface
查看>>
使用xrdp或Xmanager 远程连接 CentOS6
查看>>