- 浏览: 3431289 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
这个例子的源码是别人的,因为我没有成功运行,所以修改了一些地方,才能运行起来,故上传做备份。
更多的源码见附件
JbpmSupport.java
OrderController.java
application.xml
pom.xml
更多的源码见附件
JbpmSupport.java
package com.gds.jbpm; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.persistence.EntityManagerFactory; import org.drools.SystemEventListenerFactory; import org.drools.runtime.StatefulKnowledgeSession; import org.jbpm.process.audit.JPAProcessInstanceDbLog; import org.jbpm.process.audit.JPAWorkingMemoryDbLogger; import org.jbpm.process.workitem.wsht.SyncWSHumanTaskHandler; import org.jbpm.task.TaskService; import org.jbpm.task.service.TaskServiceSession; import org.jbpm.task.service.local.LocalTaskService; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @Service("jbpmSupport") public class JbpmSupport { @Resource @Qualifier("entityManagerFactory") private EntityManagerFactory entityManagerFactory; @Resource @Qualifier("ksession") private StatefulKnowledgeSession ksession; private TaskServiceSession taskServiceSession; /** * <dt>核心就是两个session: * <dd>KnowledgeSession 可以完全通过spring drools配置成功 * <dd>TaskServiceSession 这里通过手动编码产生local service * * <dt>todo 学习点: * <dd>能否完全使用spring xml配置出两个session * <dd>usergroup callback的作用和用法进一步研究 */ @PostConstruct public void init() { System.out.println("初始化Service类[JbpmSupport]------------------------------------------------------------------------."); // 为 ksession 设置log new JPAWorkingMemoryDbLogger(ksession); new JPAProcessInstanceDbLog(ksession.getEnvironment()); // 创建 local human service 及其 handler org.jbpm.task.service.TaskService tService = new org.jbpm.task.service.TaskService(entityManagerFactory, SystemEventListenerFactory.getSystemEventListener()); taskServiceSession = tService.createSession(); // TODO 事务该如何设置? // taskServiceSession.setTransactionType("RESOURCE_LOCAL"); SyncWSHumanTaskHandler humanTaskHandler = new SyncWSHumanTaskHandler(new LocalTaskService(taskServiceSession), ksession); humanTaskHandler.setLocal(true); humanTaskHandler.connect(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", humanTaskHandler); // set user group callback System.setProperty("jbpm.usergroup.callback", "org.jbpm.task.service.DefaultUserGroupCallbackImpl"); } public StatefulKnowledgeSession getKsession() { return ksession; } public TaskService getTaskService() { return new LocalTaskService(taskServiceSession); } }
OrderController.java
package com.gds.web; import static org.springframework.web.bind.annotation.RequestMethod.GET; import static org.springframework.web.bind.annotation.RequestMethod.POST; import static org.springframework.web.bind.annotation.RequestMethod.PUT; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.log4j.Logger; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.process.WorkflowProcessInstance; import org.jbpm.task.AccessType; import org.jbpm.task.Task; import org.jbpm.task.TaskData; import org.jbpm.task.TaskService; import org.jbpm.task.query.TaskSummary; import org.jbpm.task.service.ContentData; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import com.gds.jbpm.JbpmSupport; import com.gds.jbpm.Order; @Controller public class OrderController { private Logger log = Logger.getLogger(this.getClass()); @Resource @Qualifier("jbpmSupport") private JbpmSupport jbpmSupport; @RequestMapping("/") public String test() { log.info("this is the index"); return "index"; } @RequestMapping(value = "{user}/create", method = GET) public String create(@PathVariable("user") String user) { //log.info(user + " prepare to create"); System.out.println("用户["+user+"]进入创建界面,准备创建流程。"); return "create"; } @RequestMapping(value = "{user}/create", method = { POST, PUT }) public String doCreate(@PathVariable("user") String user, Model model) { //log.info(user + " create an order"); System.out.println("用户["+user+"]提交了流程单据"); StatefulKnowledgeSession ksession = jbpmSupport.getKsession(); Map<String, Object> params = new HashMap<String, Object>(); params.put("priority", "High"); params.put("modelNumber", "179"); params.put("quantity", "100"); System.out.println("用户["+user+"]赋初始值,并准备启动流程......."); ksession.startProcess("com.gds.jbpm.sample", params); ksession.fireAllRules(); System.out.println("用户["+user+"]创建流程,等待处理......"); model.addAttribute("message", "process created!"); System.out.println("---------------------------------------------------单据提交完成:"+user); return "create"; } @RequestMapping("{user}/list") public String list(@PathVariable("user") String user, Model model) { //log.info(user + " list his tasks"); System.out.println("用户["+user+"]读取任务列表."); TaskService taskService = jbpmSupport.getTaskService(); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner(user, "en-UK"); log.info("\n***Task size::" + tasks.size() + "***\n"); for (TaskSummary taskSummary : tasks) { log.info(taskSummary.getId() + " :: " + taskSummary.getActualOwner()); } model.addAttribute("tasks", tasks); model.addAttribute("tasksCount", tasks.size()); model.addAttribute("user", user); System.out.println("---------------------------------------------------列表读取完成:"+user); return "list"; } @RequestMapping(value = "{user}/work/{task}", method = GET) public String work(@PathVariable("user") String user, @PathVariable("task") long taskId, Model model) { //log.info(user + " prepare to work on task " + taskId); System.out.println("用户["+user+"]读取任务以便处理,任务ID="+taskId); StatefulKnowledgeSession ksession = jbpmSupport.getKsession(); TaskService taskService = jbpmSupport.getTaskService(); Task task = taskService.getTask(taskId); TaskData taskData = task.getTaskData(); WorkflowProcessInstance process = (WorkflowProcessInstance) ksession.getProcessInstance(taskData .getProcessInstanceId()); model.addAttribute("taskData", taskData); model.addAttribute("order", new Order(user, taskId, process)); System.out.println("---------------------------------------------------任务读取完成:"+user); return "work"; } @RequestMapping(value = "{user}/work/{task}", method = { POST, PUT }) public String doWork(@ModelAttribute Order order) { System.out.println("处理任务信息:"+order.toString()); String user = order.getUser(); long taskId = order.getTaskId(); log.info(user + " complete work on task " + taskId); TaskService taskService = jbpmSupport.getTaskService(); System.out.println("用户["+user+"]启动人工任务, taskId="+taskId); taskService.start(taskId, user); Map<String, Object> data = new HashMap<String, Object>(); data.put("priority", order.getPriority()); data.put("modelNumber", order.getModelNumber()); data.put("quantity", order.getQuantity()); ContentData contentData = null; if (data != null) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream outs; try { outs = new ObjectOutputStream(bos); outs.writeObject(data); outs.close(); contentData = new ContentData(); contentData.setContent(bos.toByteArray()); contentData.setAccessType(AccessType.Inline); } catch (IOException e) { e.printStackTrace(); } } taskService.complete(taskId, user, contentData); System.out.println("用户["+user+"]完成人工任务"); System.out.println("---------------------------------------------------处理任务完成:"+user); return "redirect:/" + user + "/list"; } }
application.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:drools="http://drools.org/schema/drools-spring" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://drools.org/schema/drools-spring http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.2.0.xsd" default-autowire="byName"> <context:annotation-config /> <context:component-scan base-package="com.gds.jbpm" /> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/jbpmtest?characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="persistenceUnitName" value="org.jbpm.persistence.jpa" /> </bean> <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <drools:grid-node id="node1" /> <drools:kstore id="kstore1" /> <drools:kbase id="kbase1" node="node1"> <drools:resources> <drools:resource id="resource1" type="BPMN2" source="classpath:Sample.bpmn" /> </drools:resources> </drools:kbase> <drools:ksession id="ksession" type="stateful" kbase="kbase1" node="node1"> <drools:configuration> <drools:jpa-persistence> <drools:transaction-manager ref="txManager" /> <drools:entity-manager-factory ref="entityManagerFactory" /> </drools:jpa-persistence> </drools:configuration> </drools:ksession> </beans>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>JBPM5Spring</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>JBPM5Spring Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <junit.version>4.8.2</junit.version> <spring.version>3.0.5.RELEASE</spring.version> <drools.version>5.3.1.Final</drools.version> <jbpm.version>5.2.0.Final</jbpm.version> <jbpm.stable.version>5.2.0.Final</jbpm.stable.version> <slf4j.version>1.6.1</slf4j.version> <mysql.version>5.1.10</mysql.version> <jstl.version>1.1.2</jstl.version> <servlet.version>2.5</servlet.version> <javaee-api.version>6.0</javaee-api.version> <jsp-api.version>2.1</jsp-api.version> <jboss.netty.version>3.2.0.Final</jboss.netty.version> <codehaus.btm.version>2.1.1</codehaus.btm.version> <thoughtworks.xstream.version>1.3.1</thoughtworks.xstream.version> <aspectj.version>1.6.2</aspectj.version> <cglib.version>2.2</cglib.version> <jsp.version>2.0</jsp.version> <log4j.version>1.2.16</log4j.version> </properties> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.lazyluke</groupId> <artifactId>log4jdbc-remix</artifactId> <version>0.2.7</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>${cglib.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>${servlet.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>${jsp.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>org.jboss.netty</groupId> <artifactId>netty</artifactId> <version>${jboss.netty.version}</version> </dependency> <!-- JBPM5.2 --> <dependency> <groupId>org.drools</groupId> <artifactId>drools-spring</artifactId> <version>${drools.version}</version> </dependency> <dependency> <groupId>org.drools</groupId> <artifactId>drools-persistence-jpa</artifactId> <version>${drools.version}</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-human-task</artifactId> <version>${jbpm.stable.version}</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-flow</artifactId> <version>${jbpm.version}</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-bpmn2</artifactId> <version>${jbpm.version}</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-persistence-jpa</artifactId> <version>${jbpm.version}</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-flow-builder</artifactId> <version>${jbpm.version}</version> </dependency> <dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-bam</artifactId> <version>${jbpm.version}</version> </dependency> <dependency> <groupId>org.codehaus.btm</groupId> <artifactId>btm</artifactId> <version>${codehaus.btm.version}</version> </dependency> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>${thoughtworks.xstream.version}</version> <type>jar</type> </dependency> <!-- Spring 3 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-asm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <optional>true</optional> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.3</version> <exclusions> <exclusion> <artifactId>maven-cobertura-plugin</artifactId> <groupId>maven-plugins</groupId> </exclusion> <exclusion> <artifactId>maven-findbugs-plugin</artifactId> <groupId>maven-plugins</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>commons-pool</groupId> <artifactId>commons-pool</artifactId> <version>1.6</version> </dependency> </dependencies> <build> <finalName>JBPM5Spring</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <archive> <manifest> <!--<addClasspath>true</addClasspath> --> </manifest> <manifestEntries> <Built-By>org-builder</Built-By> <Build-Jdk>${java.version}</Build-Jdk> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.20</version> <configuration> <contextPath>/JBPM5Spring</contextPath> <!--<webDefaultXml>webdefault.xml</webDefaultXml> --> <scanIntervalSeconds>0</scanIntervalSeconds> <scanTargetPatterns> <scanTargetPattern> <directory>src/main/webapp/WEB-INF</directory> <excludes> <exclude>**/*.jsp</exclude> </excludes> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </scanTargetPattern> </scanTargetPatterns> </configuration> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.0.2</version> <configuration> <archive> <manifest> <addDefaultImplementationEntries>true</addDefaultImplementationEntries> </manifest> <manifestEntries> <Implementation-Build>${buildNumber}</Implementation-Build> </manifestEntries> </archive> <dependentWarExcludes> **/jdbc.properties,**/web.xml,WEB-INF/classes/META-INF/** </dependentWarExcludes> </configuration> </plugin> </plugins> </build> </project>
- JBPM5Spring.zip (210.8 KB)
- 下载次数: 148
评论
1 楼
mg6521018
2014-06-16
麻烦问下,drools是怎么引用的
import javax.persistence.EntityManagerFactory;
import org.drools.SystemEventListenerFactory;
import org.drools.runtime.StatefulKnowledgeSession;
这三个为什么会报错呢
import javax.persistence.EntityManagerFactory;
import org.drools.SystemEventListenerFactory;
import org.drools.runtime.StatefulKnowledgeSession;
这三个为什么会报错呢
发表评论
-
drools 规则文件 —— 语法
2014-06-09 21:53 3431原文:http://liureying.blog.163.co ... -
使用eclipse创建bpmn2文件的一些问题
2014-06-07 15:18 1757使用bpmn2 diagram Editor编辑器的问题 1 ... -
JBPM6入门资料: Spring4 + Hibernate4 + JBPM6整合
2014-05-21 19:39 18783参考资料: =============== ... -
我的Activiti例子
2013-09-21 15:01 6905Spring 与Activiti的入门整合 http://ww ... -
各种状态的任务查询以及和业务对象关联
2013-09-21 14:26 1964http://www.kafeitu.me/activiti/ ... -
Activiti: 三种部署方式和几种启动方式
2013-09-20 00:24 4732三种部署: 1.自动部署: <property name ... -
Activiti modeler 国际化要点
2013-09-18 15:33 25591. 界面文本:src/main/resources/sten ... -
两篇整合Activiti Modeler到业务系统
2013-09-17 14:29 8705整合Activiti Modeler到业务系统(或BPM平台) ... -
Activiti5.12共22张表
2013-09-17 14:10 1970(1)用户管理表 ACT_ID_GROUP; ... -
Activiti: 关于表单的一些接口
2013-09-17 09:31 2487获得流程启动的时候的表单信息 ProcessInstance ... -
Activiti5: TaskQuery查询API
2013-09-16 13:34 3472http://blog.csdn.net/iflow/arti ... -
第一个Activiti5.13 + Spring3.x例子
2013-09-16 13:24 2367参考: http://www.iteye.com/topic/ ... -
kft-activiti-demo: 部署记录
2013-09-13 17:36 20142.SpringMvc + Activiti + Hibern ... -
SSH 整合 Activiti
2013-09-09 14:45 2026原文:http://blog.chinaunix.net/ui ... -
Activiti BPM Platform工作流的一些资料
2013-09-03 16:07 2936Activiti官方: http://www.activiti ... -
JBPM5.4发送email
2013-05-29 15:57 2085JBPM5.4配置参考: http://panyongzhen ... -
Spring3.1 + Hibernate4.2.1 + JBPM5.4 + Ehache整合例子
2013-05-29 11:17 9486pom.xml ----------------------- ... -
JBPM5 Designer 2.3源码问题
2013-05-24 09:50 2345最新本2.4发布,但是里面是使用Maven的module方式来 ... -
Spring 3 & jBPM 5 & LocalTaskService
2013-05-24 09:52 1831帖子地址:https://community.jboss.or ... -
JBPM Designer 部署
2013-05-24 09:53 1656版本:2.4 把war放到tomcat下面之后,进入的url是 ...
相关推荐
标题中的"Spring 3.1.x + Hibernate 4.2.x + JBPM 5.2 + Ecache例子源码"代表了一个集成开发环境,其中包含了四个关键的技术组件: 1. **Spring 3.1.x**:这是一个开源的应用框架,主要用于简化Java企业级应用的...
标题 "Spring 3.1.x + Hibernate 4.2.x + JBPM 5.2 + Ecache 例子" 涉及的是一个集成多种技术的Java应用开发示例。这个项目可能是一个完整的业务流程管理系统,它整合了Spring、Hibernate、JBPM和Ecache等关键组件。...
【jbpm4+spring+hibernate】是一个集成示例,展示了如何将业务流程管理工具Jbpm4与Spring框架和Hibernate ORM库协同工作。这个示例主要关注于在企业级应用中实现工作流管理和数据持久化。让我们深入探讨这三个技术...
将JBPM5、Spring、Hibernate和MySQL整合在一起,可以实现一个完整的业务流程管理系统。JBPM5负责流程的定义和执行,Spring作为应用的框架,提供依赖注入和事务管理,使得各组件间协作顺畅;Hibernate作为ORM层,负责...
通过JBPM4.4、Spring和EXT的整合,可以构建出一个功能完善、易用性强的流程管理系统,不仅能够有效地管理业务流程,还能提供直观的用户界面,提升用户体验。这种整合方式在现代企业级应用中具有很高的实用价值。
这个例子展示了如何使用Struts2、Spring和Hibernate与JBPM配合实现一个请假流程。开发者需要定义请假流程的jpdl文件,创建对应的数据库表,然后在Struts2的Action中调用JBPM的服务来启动、完成任务和查询流程状态。 ...
首先,jbpm4本身拥有一个IOC容器,但为了更好地整合其他框架,通常会选择Spring作为统一的容器来管理和协调所有服务,包括jbpm4的服务。这需要将jbpm4的相关服务迁移到Spring的配置中,让Spring管理事务,从而降低...
因为有点大所以分了8份 一个自己学习到现在的结果吧,自己做的一个完整的借款流程应用,主要是用到了SPRING,在整合的过程中遇到过不少问题。我的博客有一些说明http://yuyanshan.javaeye.com/<br>
2 项目有完善的spring和jbpm集成方法,jbpm版本是6,jbpm5和jbpm6版本差异较大,配置差异也很大,切记 3 用的数据库为mysql,在运行的时候,会自动在数据库中建立jbpm工作流的表。 4 可以根据自己的项目自行集成。
Jbpm是一个开源的工作流管理系统,它提供了一整套业务流程自动化解决方案。在3.2.2版本中,jbpm提供了对工作流建模、执行、监控和管理的功能。它支持BPMN(Business Process Modeling Notation)标准,使得业务流程...
【jbpm + struts + spring + tomcat】项目是一个经典的Java企业级应用架构组合,它将业务流程管理(BPM)工具jbpm、MVC框架Struts、依赖注入容器Spring和应用服务器Tomcat整合在一起,为开发高效、可维护的企业应用...
【标题】"jbpm4.3+struts2+spring3+hibernate3整合(一)"涉及的是一个常见的Java企业级应用架构整合实践,其中jbpm4.3是业务流程管理(Business Process Management)框架,Struts2是MVC(Model-View-Controller)...
将jbpm4.0、EXT3.0、Spring和Hibernate整合在一起,可以构建出一个功能强大的业务流程管理系统。Spring作为整体架构的胶水,管理各组件的生命周期;Hibernate负责数据持久化,处理与数据库的交互;jbpm4.0则处理业务...
SSHJ (Spring、Struts2、Hibernate 和 jBPM) 是一个经典的 Java 开发框架组合,用于构建企业级的 Web 应用程序。这个集成项目是基于特定版本的这些技术,包括jbpm4.4(业务流程管理),spring2.5.6(依赖注入和事务...
Jbpm+Spring+hibernate+struts2+mysql+c3p0项目部署
总之,Jbpm4.4整合Spring Hibernate4是一个强大的组合,它为开发人员提供了构建高效、灵活的流程驱动应用的工具,简化了业务流程的管理和实现。通过深入理解这些组件和整合方式,开发者可以更好地应对复杂的业务场景...
【jbpm+spring配置】是将业务流程管理(Business Process Management, BPM)框架jbpm与企业级应用开发框架Spring相结合的实践。jbpm是一个开源的BPM解决方案,它提供了流程定义、执行、监控和管理的一整套工具。而...
"jBPM4.3+struts2.1.8+spring2.5整合" 这个标题表明我们将探讨一个基于Java的企业级应用开发集成框架。jBPM是业务流程管理(Business Process Management)的一个开源工具,版本4.3,用于管理和执行工作流和业务流程...
这个项目是一个整合了jbpm(Java Business Process Management)、Spring框架和Struts框架的典型企业级应用。jbpm是用于业务流程管理的开源工具,Spring则提供了全面的后端服务管理,而Struts则是前端MVC(Model-...
jbPM(Java Business Process Management)是一个开源的工作流管理系统,专注于业务流程的建模、部署和执行。jbPM5.2是该系统的某一版本,提供了一整套API,使得开发者能够灵活地集成业务流程到Java应用程序中。API...