您的位置:首页 > 产品设计 > 产品经理

JBPM创建数据库,流程定义以及发布学习笔记

2010-03-12 11:31 330 查看

建立JBPM数据库支持

直接使用SQL脚本
jbpm-starters-kit-3.1.4/jbpm-db/build下有JBPM支持的数据库的脚本,利用oracle/scripts/oracle.create.sql创建JBPM所需要的数据表。
使用ANT创建数据库脚本
刚开始研究JBPM准备建ORACLE数据库时,该文件夹下并没有oracle建表脚本。在网上查了资料后发现可以利用ANT先建立脚本,在使用脚本创建数据表。
第一、将jbpm-starters-kit-3.1.4文件下原有的jbpm文件夹改为jbpm.3(主要是因为build.xml文件中使用的是jbpm.3这个名称,该文件是ANT需要使用的XML定义文件)。
第二、修改D:/jbpm-starters-kit-3.1.4/jbpm.3/build.properties。需要修改的就是其中ant.home 和jbpm.home的值。(.properties扩展名的文件是JAVA中的项目配置文件 数据格式为object=value,java.util的jar包下有Properties类负责解析 )。
第三、在D:/jbpm-starters-kit-3.1.4/jbpm-db/oracle/lib文件夹下放入oracle的JDBC驱动包。该包可以在oracle安装路径下的JDBC/LIB中找到。Oracle的JDBC驱动包名为classes12.jar。
第四、在命令行程序中进入到D:/jbpm-starters-kit-3.1.4/jbpm-db目录下执行 ant oracle.scripts进行脚本生成。最终生成目录为D:/jbpm-starters-kit-3.1.4/jbpm-db/build/oracle/scripts。原本使用JDK6.0的时候执行ANT命令会失败,然后将JDK版本降为1.5后就可以正常生成。可能原因是JDK6.0废弃了一些在程序中使用到的方法导致的。
第五、执行脚本创建ORACLE脚本。
在MyEclipse中加载JBPM插件
第一、D:/jbpm-starters-kit-3.1.4/jbpm-designer/jbpm-gpd-feature/eclipse下的所有文件夹复制到D:/MyEclipse 6.0/eclipse下。
第二、在命令行程序,进入到D:/MyEclipse 6.0/eclipse目录,然后执行eclipse –clean即可加载JBPM插件。
第三、通过eclipse创建JBPM工程,选择如下图的Process Project工程,然后选择jbpm.3作为该工程的JBPM CORE。然后就可以进行流程定义。

将JBPM工程移植到Web工程中
首先建立JBPM工程和WEB工程,然后只需将JBPM 的流程定义文件以及配置文件和JAR复制到WEB工程中即可。
发布流程定义
JBPM发布流程有2种方式,第一种通过编程的方式发布;第二种就是部署JBPM服务然后通过该服务发布流程。
通过编程发布
String path ="流程定义的XML 路径";

//获取JBPM上下文对象
JbpmContext context =
JbpmConfiguration.getInstance().createJbpmContext();

//通过解析流程定义的XML文件获取流程定义
ProcessDefinition pd = ProcessDefinition.parseXmlString(path);

//通过上下文发布流程定义到数据库
context.deployProcessDefinition(pd);

//关闭JBPM上下文对象同时提交事务
context.close();

通过JBPM服务发布
首先在jbpm-starters-kit-3.1.4/jbpm-server/server/jbpm/deploy/文件夹下找到jbpm.war并将其解压缩,然后将解压后的文件夹复制到Tomcat 6.0/webapps/文件夹下。最后将JBPM所需要的JAR文件复制到Tomcat 6.0/webapps/jbpm/WEB-INF/lib下。
启动TOMCAT,查看启动日志,如果没有报错则表示部署成功。然后打开你的eclipse中的流程定义图形化工具。选择左下角的Deployment然后连接你部署的JBPM服务进行发布。将jbpm-console改为 你发布的站点名称。然后通过
Test Conncetion 来测试连接。最后通过Deploy Process Archive来发布到数据库中。

Jar包
可能有多余,或者版本低的。(我部署的JBPM服务可以发布流程但是访问页面会报错。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: