首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ssh2+jbpm3集成容易示例(一)

2012-12-21 
ssh2+jbpm3集成简单示例(一)????? struts2+spring+hibernate是比较流行的javaee开源框架集成组合,在系统的

ssh2+jbpm3集成简单示例(一)

????? struts2+spring+hibernate是比较流行的javaee开源框架集成组合,在系统的技术架构体系中,hibernate主要负责数据的持久操作,struts2负责web层的控制与显示,而spring充当容器管理的角色,利用ioc机制与aop机制的强大功能,将struts,hibernate纳入自己的资源管理范围,同时提供对各个框架的支持与无集成,最大范围的减少组件之间的耦合度,提高系统的可拓展性与可维护性。jbpm是jboss旗下的一个开源的工作流引擎,是一个基于javaee的轻量级工作流系统,将企业的业务流程进行自动化,持久化并植入系统之中,工作流引擎将发挥很大的作用。jbpm的数据持久层采用的是hibernate,所以对于开发的系统如果使用hibernate框架的话,这是一个完美的组合。目前的最新版本是jbpm4.4,相对于jbpm3来说,jbpm4.x在技术构架上与性能方面做了很大的改进,关于对jbpm4的集成,将会在下次交流。本次示例的开发环境为myeclipse6.5 sql200x hibernate3.2 spring2.0 jbpm3.2.3。当然笔记本是lenovo-t400。

这是一个简单的流程示例,运行结果如下:


ssh2+jbpm3集成容易示例(一)
?

1.打开ide创建web项目,设置好目录结构,加入各个框架的支持。利用工具画出流程图。


ssh2+jbpm3集成容易示例(一)
?
流程定义文件如下:
<?xml version="1.0" encoding="gbk"?>
<process-definition? xmlns="urn:jbpm.org:jpdl-3.2"? name="monthreport">

<start-state name="开始">
? <transition to="填写月度工作报告" name="to填写"></transition>
</start-state>

<task-node name="填写月度工作报告">
? <task name="填写月度工作报告任务">
?? <assignment actor-id="#{starter}"></assignment>
? </task>
? <transition to="是否为经理" name="去审核"></transition>
</task-node>
<task-node name="经理审核">
? <task name="经理审核任务">
?? <assignment actor-id="mrchen"></assignment>
? </task>
? <transition to="填写月度工作报告" name="驳回">
?? <action name="raction"></action>
? </transition>
? <transition to="存档" name="to存档"></transition>
</task-node>
<node name="存档">
? <event type="node-enter">
?? <script>
?????? print(&quot;存档中...&quot;);?
?? </script>
? </event>
? <transition to="结束" name="toend"/>?
? <event type="node-leave">
?? <script>
??? print(&quot;存档完成&quot;);
?? </script>
? </event>
</node>
<decision name="是否为经理" expression="#{starter=='mrchen'?'是经理':'非经理'}">
? <transition to="经理审核" name="非经理"></transition>
? <transition to="存档" name="是经理"></transition>
</decision>
<end-state name="结束"></end-state>
</process-definition>
2.配置或修改相关的配置文件。其中hibernate.cfg.xml在创建jbpm工程时会自动生成。根据你自己的环境进行修改。这里主要是数据连接信息的设置。
<hibernate-configuration>
? <session-factory>
??? <!-- hibernate dialect -->
??? <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
??? <!-- JDBC connection properties (begin) -->
??? <property name="hibernate.connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
??? <property name="hibernate.connection.url">jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fengjbpm</property>
??? <property name="hibernate.connection.username">sa</property>
??? <property name="hibernate.connection.password">sa</property>
??? <!-- JDBC connection properties (end) -->
???
??? <property name="show_sql">true</property>
???
??? <property name="format_sql">true</property>
???
??? <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
???
??? <property name="hibernate.hbm2ddl.auto">update</property>
??? <property name="hibernate.transaction.factory_class">
? org.hibernate.transaction.JDBCTransactionFactory
</property>【其它略。。。。】
jbpm.cfg.xml文件是从jbpm-jpdl3.2.3根目录下的jbpm.test.cfg.xml复制过来,重命名即可。其中的内容不需要做修改。
3.接下来我们利用hibernate配置文件,利用SchemaExport工具类正向生成数据库脚本。一定要注意了,先得在sqlserver中创建数据库, 名字与上面的配置一样,这里为fengjbpm.

public class CreateSchema {

//先创建数据库,再执行下面的代码
public static void main(String[] args) {
?
? Configuration config =
??? new Configuration();
? config.configure("/hibernate.cfg.xml");
?

? SchemaExport e =new SchemaExport(config);
? e.create(true, true);//生成ddl
?
}
}
执行完毕后,你可以刷新数据库,就可以查看产生的数据库对象。

当前数据库环境为初始化环境,可以看到没有任何流程信息。

ssh2+jbpm3集成容易示例(一)
?


???

?

热点排行