jbpm连接mysql数据库(续)

本文介绍如何在JBPM 3.2.6环境中配置jbpm.cfg.xml文件以实现流程的持久化。通过放置必要的jar文件并修改配置,确保流程能够被正确存储到MySQL数据库。

前面我讲过的使用部署文件连接mysql的方式只是创建了基础数据库,在实际环境中我发现并不能将jbpm的流程持久化到数据库中,下面我又研究了下如何将jbpm的流程持久化到数据库中.

这次我使用的环境是jbpm3.2.6.sp1的环境(主要是考虑到以后要使用eclipse3.4的开发环境)

首先将mysql的驱动程序mysql-connector-java-5.1.7-bin.jar与jta-1.1.jar(hibernate持久化需要用到这个jar,否则报错)放在classpath路径下。

修改src/main/config/hibernate.cfg.xml配置文件,修改过程同我原来的文章。

复制log4j.properties文件到src/main/config目录下,这个是系统log4j的配置文件,你可以自己写或者从别的应用里带过来即可。

编辑src/main/config/jbpm.cfg.xml,注意,这个文件是关键,这个文件是整个jbpm的主配置文件,其缺省什么都没有,主要根节点,所以你可以运行jbpm的流程,但是不能做持久化,要做持久化必须配置这个文件,其默认配置如下:

<jbpm-configuration>

  <jbpm-context>

<service name="tx" factory="org.jbpm.tx.TxServiceFactory" />

    <service name='persistence' factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' />

    <service name='message' factory='org.jbpm.msg.db.DbMessageServiceFactory' />

    <service name='scheduler' factory='org.jbpm.scheduler.db.DbSchedulerServiceFactory' />

    <service name='logging' factory='org.jbpm.logging.db.DbLoggingServiceFactory' />

    <service name='authentication' factory='org.jbpm.security.authentication.DefaultAuthenticationServiceFactory' />

  </jbpm-context>

 

  <!-- configuration resource files pointing to default configuration files in jbpm-{version}.jar -->

  <string name='resource.hibernate.cfg.xml' value='hibernate.cfg.xml' />

 

  <!-- <string name='resource.hibernate.properties' value='hibernate.properties' /> -->

  <string name='resource.business.calendar' value='org/jbpm/calendar/jbpm.business.calendar.properties' />

  <string name='resource.default.modules' value='org/jbpm/graph/def/jbpm.default.modules.properties' />

  <string name='resource.converter' value='org/jbpm/db/hibernate/jbpm.converter.properties' />

  <string name='resource.action.types' value='org/jbpm/graph/action/action.types.xml' />

  <string name='resource.node.types' value='org/jbpm/graph/node/node.types.xml' />

  <string name='resource.parsers' value='org/jbpm/jpdl/par/jbpm.parsers.xml' />

  <string name='resource.varmapping' value='org/jbpm/context/exe/jbpm.varmapping.xml' />

  <string name='resource.mail.templates' value='jbpm.mail.templates.xml' />

 

  <int name='jbpm.byte.block.size' value="1024" singleton="true" />

  <bean name='jbpm.task.instance.factory' class='org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl' singleton='true' />

  <bean name='jbpm.variable.resolver' class='org.jbpm.jpdl.el.impl.JbpmVariableResolver' singleton='true' />

  <string name='jbpm.mail.smtp.host' value='localhost' />

  <bean   name='jbpm.mail.address.resolver' class='org.jbpm.identity.mail.IdentityAddressResolver' singleton='true' />

  <string name='jbpm.mail.from.address' value='jbpm@noreply' />

 

  <bean name='jbpm.job.executor' class='org.jbpm.job.executor.JobExecutor'>

    <field name='jbpmConfiguration'><ref bean='jbpmConfiguration' /></field>

    <field name='name'><string value='JbpmJobExecutor' /></field>

    <field name='nbrOfThreads'><int value='1' /></field>

    <field name='idleInterval'><int value='5000' /></field>

    <field name='maxIdleInterval'><int value='3600000' /></field> <!-- 1 hour -->

    <field name='historyMaxSize'><int value='20' /></field>

    <field name='maxLockTime'><int value='600000' /></field> <!-- 10 minutes -->

    <field name='lockMonitorInterval'><int value='60000' /></field> <!-- 1 minute -->

    <field name='lockBufferTime'><int value='5000' /></field> <!-- 5 seconds -->

  </bean>

 

</jbpm-configuration>

然后你再运行你的junit应用,看看是不是被持久化了呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值