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

          前边我们讲述了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运用到三层架构中了。可以进行流程的部署,流程的实例,流程任务的获取与解决了。当然更加熟悉的运用还需要我们在实践中多锻炼。


评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值