jbpm4.4集成入SSH项目中

第一步:在工程的pom.xml文件中加入repository
<repositories>
<repository>
<id>appfuse-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/appfuse-snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<!--JBPM依赖包 maven2资源库 -->
<repository>
<id>Jboss-JBPM-Repositories</id>
<name>JbossJBPM</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</repository>
</repositories>
第二步:在工程的pom.xml文件中加入dependency,版本是4.4
<!-- JBPM 依赖包 -->
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-api</artifactId>
<version>${jbpm.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-jpdl</artifactId>
<version>${jbpm.version}</version>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-pvm</artifactId>
<version>${jbpm.version}</version>
<exclusions>
<exclusion>
<groupId>juel</groupId>
<artifactId>juel-api</artifactId>
</exclusion>
<exclusion>
<groupId>juel</groupId>
<artifactId>juel-impl</artifactId>
</exclusion>
<exclusion>
<groupId>juel</groupId>
<artifactId>juel-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jbpm.jbpm4</groupId>
<artifactId>jbpm-log</artifactId>
<version>${jbpm.version}</version>
</dependency>
<!-- JBPM 依赖包 -->
第三步:复制jbpm.cfg.xml(必须),jbpm.mail.properties(可选),jbpm.mail.templates.xml(可选)到工程的classpath路径下面。
jbpm.cfg.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>

<!-- jbpm4.4与spring集成的配置-->
<import resource="jbpm.default.cfg.xml" />
<import resource="jbpm.jpdl.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" />-->

<import resource="jbpm.tx.spring.cfg.xml" /> <!-- 事务管理器-->
<!--jBPM4逻辑实现采用了Command模式,jBPM4对CommandService构造拦截器(Interceptor)链,配置在jbpm.cfg.xml的process-engine-context里,用的是<standard-transaction-interceptor />-->
<!--jBPM4原有的事务通过StandardTransactionInterceptor实现,在CommandService执行Command之前打开事务(实际委派Hibernate的事务管理),完成后提交/回滚。jBPM4的事务是基于Command的-->

<!--Spring的事务是基于服务调用的,使jBPM4使用Spring提供的事务,用的是<spring-transaction-interceptor current="true" />-->
<!--拦截器换用SpringTransactionInterceptor,从environment 提供的Spring IOC获取PlatformTransactionManager,使用事务模板回调Command,事务传播模式强制加入当前事务。-->
<!--spring-transaction-interceptor默认会查找PlatformTransactionManager的实现,通过类型在定义好的bean中查找。在有多个事务管理器的情况, 可以使用属性transaction-manager来指定使用哪一个-->

<process-engine-context>
<command-service>
<retry-interceptor />
<environment-interceptor />
<spring-transaction-interceptor current="true" transaction-manager="transactionManager" />
</command-service>
</process-engine-context>

<!-- 同时,对hibernate session的配置(jbpm.cfg.xml的transaction-context)强制从当前线程中获取:<hibernate-session current="true"/>-->
<!-- hibernate-session需要使用属性current="true",取决于是否使用了spring的current session策略,而且,<transaction/>必须从transaction-context中删除,如果你希望 事务只由spring进行管理-->
<transaction-context>
<hibernate-session current="true" />
</transaction-context>

</jbpm-configuration>

jbpm.mail.properties文件内容如下:

mail.smtp.host mail.xxx.cn
mail.from yxue@xxx.cn
mail.username yxue@xxx.cn
mail.password xxx

jbpm.mail.templates.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<jbpm-configuration>
<process-engine-context>

<mail-template name="problemReported">
<to addresses="${ mailTemplate.receiver }" />
<subject>${mailTemplate.subject}</subject>
<text>您好:有问题需要处理 !</text>
</mail-template>

</process-engine-context>
</jbpm-configuration>
邮件模板中的参数对象需要在程序中赋值。

第四步:在spring的xml文件中加入下边内容。

<!-- hibernate.cfg.xml文件中配置的都是基于注解的实体-->
<!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:hibernate.cfg.xml"/>
<property name="hibernateProperties">
<value>
hibernate.dialect=${hibernate.dialect}
hibernate.query.substitutions=true 'Y', false 'N'
hibernate.cache.use_second_level_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.hbm2ddl.auto=update
</value>
<!-- Turn batching off for better error messages under PostgreSQL -->
<!-- hibernate.jdbc.batch_size=0 -->
</property>

<!--JBPM 集成 -->
<!--jBPM4的environment(运行期环境)提供Engine IOC(process-engine-context)和Transaction IOC(transaction-context)。要想在运行期方便地访问到Spring里所配置的服务,最直接的方法就是在environment里加入Spring IOC(applicationContext)的引用。SpringConfiguration是如何做到的呢?简单,实现Spring的ApplicationContextAware接口,自动持有applicationContext,然后openEnvironment时将其加入environment。environment.setContext(new SpringContext(applicationContext));SpringContext是对applicationContext的简单封装 -->

<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>

<!--JBPM 集成(将服务配置到Spring的IOC容器里) -->
<!--
一是通过Spring暴露出服务,将服务配置到Spring的IOC容器里;
二是在自己的运行环境里访问到Spring的IOC容器,能够轻松使用Spring容器里所配置的服务;
三是对于具有事务管理特性的项目来说,将事务管理与Spring的事务管理进行合并。
-->
<!--注意,SpringHelper的jbpmCfg属性是可选的。 如果默认的jbpm.cfg.xml存在在classpath下 -->

<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper"
lazy-init="default" dependency-check="default">
<property name="jbpmCfg">
<value>jbpm.cfg.xml</value>
</property>
</bean>

<bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />

<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="managementService" factory-bean="processEngine" factory-method="getManagementService" />
<bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
<bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" />

<!--JBPM 集成 -->
注意:新加入的jbpm4.4的jar包如何加入工程中呢?
运用mvn eclipse:clean清除eclipse项目的配置文件,在运用mvn eclipse:eclipse重新生成.classpath和.project两个文件。
到此,SSH项目中就集成了jbpm4.4,同时jbpm4.4的事务使用spring中的事务,我们在action或是manager层就可以以bean的方式注入processEngine以及五个服务了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值