我的JBPM
一、JBPM的环境的搭建:
集成的工作环境是eclipse,这练习的JBPM的版本是4.4的
下载关于4.4版本的jar包和安装包;
在eclipse中进行插件的安装的操作:
在eclipse中的help的Install new software 选项中进行安装的步骤的操作;
添加我们的解压之后的文件下的D:\jbpm-4.4\install\src\gpd中的压缩文件jbpm-gpd-site.zip,之后就是基本的安装的操作的模式了;
进行基本的安装的验证的操作,是在我们自己新建一个项目之后,我们可以在自己的java的项目中进行一个jbpm的文件的建立。
二、基本的认识JBPM
认识JBPM的:
一、导包:
由于是第一次的认识,对于jbpm的基本的jar包认识的还不是很全面,所以我们可以把所以的关于JBPM的jar包导入到我们的项目中去,由于JBPM可以说是一个比较的成熟开源的工作流的框架,其中继承了一些hibernate,数据库的连接,el表达式的操作等等,所以他的jar包是一个比较大的jar库,我们全部导入的jar包:58个以及一个JBPM的核心jar。
配置文件的加入:
我们可以把D:\jbpm-4.4\examples\src中的xml和propertities的文件导入到我们的java项目中的src下面;
这里需要进行的修改如下在我们的hibernate.cfg.xml中的修改之后的代码是:
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">sa</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />
建立我们的第一个流程图的xml:
建立一个jbpm,命名为fu,我们可以观察到生成的是一个fu.jbpl.xml的文件,其中我们可以类似的进行一个UML的建模的操作,但是和UML还是有很大的区别的。
建立我们的测试的java类:
测试代码如下:
package com.fww.test;
import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
public class Test {
public static void main(String[] args) {
// 核心的配置的文件的加载的操作
Configuration conf = new Configuration();
// 流程的引擎的获取
ProcessEngine processEngine = conf.buildProcessEngine();
// 仓库的服务引擎的获取
// RepositoryService repositoryService = processEngine.getRepositoryService();
// 发布 流程的定义
// repositoryService.createDeployment().addResourceFromClasspath(“jb/fu.jpdl.xml”).deploy();
//获取实例流程
ExecutionService executionService =processEngine.getExecutionService();
//实例的流程的一个开启的操作 依据一个id 是数据库中的deployprop的stringval_字段
// executionService.startProcessInstanceById(“fu-1”);
//实例的继续的操作 依据的是数据库中的execution的id_字段
executionService.signalExecutionById("fu.10001");
}
}
如此一个基本的jbpm的的操作就完成了一个流程的发布的操作,我们可以在我们的数据库中进行基本的数据的查看的操作,其中可以看到关于fu流程图的一些“基本的信息”。
JBPM的六个service:
在我们使用JBPM的时候,我们可以知道其中是包括有如下的六个servicede:
在我们的eclipse中的一个完整的s2sh和JBPM的结合实例:
web.xml:
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
<filter-name>hibernateSessionFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<filter-name>hibernateSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
<display-name>DWR Servlet</display-name>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
<welcome-file>index.jsp</welcome-file>
我们的struts和spring的配置: