JBPM4.4(三)——与SSH的集成运用

来源:互联网 发布:mac与虚拟机共享桌面 编辑:程序博客网 时间:2024/05/21 06:31

          前边我们讲述了JBPM的个例简单运用,但是如何能够运用到项目中才是我们想要的,所以这篇简单看一下如何将JBPM4.4运用到SSH框架进行使用。


         首先说一下集成吧。无论是SSH,SSI等框架的集成,还是将JBPM4.4框架集成进去都是一样的,就是分工明确各司其职,并进行畅通交流即可。这其中Spring起着至关重要的作用。举个不恰当的例子吧,假如将我们的软件看做我们的电脑的话,Spring就好比主板,起着负载其他器件,管理其他器件的重大作用,有点好比大管家的意思。而Struts2可以看做CPUHibernate可以看做内存,现在的JBPM也可以看做其中一个比较重要的器械件。也就是说,我们想要将Struts2中的actionHibernate中的SessionFactory,IBaits中的sqlMapClient,JBPM中的ProcessEngine等各自框架的核心类交给Spring进行创建并管理,这样使框架之间彼此融合了起来,就像一个整体了。


         好,看一下如何将JBPM继承到SSH中吧!


         一,当然还是先考入jar包,还是哪句话“奔着够用的原则”

 jbpm.jar(核心jar包)

 lib\(lib目录下的jar,这里添加了一些必要的,像一些测试jar包,日志jar包,在SSH中已经引入了,当然了如果出现了少jar包的情况,再进行导入即可,这些jar功能基本上够了。)

           antlr.jar

 antlr-runtime.jar

 avalon-framework.jar

 bsh.jar

 core.jar

 errai-bus.jar

 errai-common.jar

 janino.jar

 jbpm-bpmn.jar

 jbpm-db.jar

 jbpm-jboss.jar

 jbpm-tomcat6.jar

 joda-time.jar

 juel-api.jar

 juel-engine.jar

 juel-impl.jar

 livetribe-jsr223.jar

 mail.jar

 mvel2.jar

 oro.jar

 activation.jar        

 

          二,提供JBPM4.4的配置文件jbpm.cfg.xml,拷贝到src目录下,注意这个名字是SpringHelper类中提供的默认的名称,如果不是这个名称,还需要我们进行配置来覆盖默认的名称,才能起作用。在这个文件还需要加入Spring的引用:找到SpringJBPM用到的Hibernate映射文件:


<jbpm-configuration>  <import resource="jbpm.default.cfg.xml" />  <import resource="jbpm.tx.spring.cfg.xml" />  <import resource="jbpm.jpdl.cfg.xml" />  <import resource="jbpm.bpmn.cfg.xml" />  <import resource="jbpm.identity.cfg.xml" />  <import resource="jbpm.businesscalendar.cfg.xml" />  <import resource="jbpm.console.cfg.xml" />  <import resource="jbpm.jobexecutor.cfg.xml" />      <!-- 注意value的值就是Spring核心配置文件的名称 -->  <process-engine-context>    <string name="spring.cfg" value="applicationContext.xml" />  </process-engine-context></jbpm-configuration>



        三,Spring核心配置文件中添加对JBPM的配置:

<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper"/><bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" /><!-- 为了更方便使用,将processEngine作为一个工厂,创建出相关的Service ,可以在后边直接使用,不需要在每个Sevice中通过processEngine进行创建--><bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService"/><bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService"/><bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService"/><bean id="taskService" factory-bean="processEngine" factory-method="getTaskService"/><bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/><bean id="managementService" factory-bean="processEngine" factory-method="getManagementService"/><!-- Hibernate核心对象,添加对JBPM的支持,就是将写在Hibernate中的东西搬了过来 -->    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">         ………………                <!-- 将JBPM4用到的hibernate映射文件,加入到Spring配置文件中 -->        <property name="mappingResources">        <list>        <value>jbpm.repository.hbm.xml</value>        <value>jbpm.execution.hbm.xml</value>        <value>jbpm.history.hbm.xml</value>        <value>jbpm.task.hbm.xml</value>        <value>jbpm.identity.hbm.xml</value>        </list>        </property>    </bean>

        四,问题解决,通过启动Tomcat服务器,会有一些问题,例如sql语句的频繁发送,无法访问应用程序(也就是JBPMTomcat之间的冲突)

             1,去除控台SQL的发送,将jbpm.cfg.xml中的如下配置进行注释

  <!--        

  <importresource="jbpm.jobexecutor.cfg.xml" />

   -->

            

             2,将拷贝的jar包中的juel*.jar剪切到Tomcatlib目录下,注意是剪切,然后删除TOMCAT/lib/el-api.jar。这是两者的包冲突吧

 


          这样就算集成进去了,我们就可以将JBPM运用到三层架构中了。可以进行流程的部署,流程的实例,流程任务的获取与解决了。当然更加熟悉的运用还需要我们在实践中多锻炼。


2 0