首先,确认手边有一份jbpm3的user guide,有一份还有JBPM3.0源码的压缩包
JBPM中是通过org.jbpm.db. JbpmSessionFactory.getInstance()返回一个JbpmSessionFactory实例,
下面通过分析getInstance()的过程,说明怎么设置相关配置文件
1、JbpmSessionFactory.getInstance()方法首先查找类路径中的jbpm.properties文件
jbpm.scheduler.service.factory=org.jbpm.scheduler.impl.SchedulerServiceImpl
jbpm.task.instance.class=org.jbpm.taskmgmt.exe.TaskInstance
# uncomment the next line if JbpmSessionFactory.getInstance()
# should lookup the singleton instance from JNDI instead of creating
# a default one.
#
jbpm.session.factory.jndi.name=java:/jbpm/JbpmSessionFactory
# uncomment the next line to use the file system instead of the database for
# storing files related to a process definition
#
# jbpm.files.dir=c:/jbpm.data
# resource path to a properties file that will overwrite all the hibernate
# properties. For database specific builds in db project there is a different
# hibernate.properties file on the classpath for each database. You could change
# the default database for any testing runs by uncommenting the next line and
# adding a hibernate.properties file in the basedir.
#
jbpm.hibernate.cfg.xml=jbpm.hibernate.cfg.xml
jbpm.hibernate.properties=jbpm.hibernate.properties
|
找到最基本的设置,jbpm.session.factory.jndi.name=java:/jbpm/JbpmSessionFactory
这行表示从jndi获取一个JbpmSessionFactory的一个实例,如果你可以用JBPM3 demo中java:/jbpm/JbpmSessionFactory是与DataSource DefaultDS绑定在一起的(在jboss-service.xml中)。要部署在tomcat中,这行必须注释掉。
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="org.jbpm.db.jmx.JbpmService"
name="jboss.jbpm:name=DefaultJbpm,service=JbpmService"
description="Default jBPM Service">
<attribute name="JndiName">java:/jbpm/JbpmSessionFactory</attribute>
<depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
</mbean>
</server>
|
jboss-service.xml文件内容,如果你用源码包成功部署了websale的话,可以在JBOSS_HOME"server"jbpm"deploy"jbpm.sar"META-INF"目录下找到该文件
2、如果getInstance()没有找到jbpm.session.factory.jndi.name的值,会继续查找jbpm.hibernate.properties的值,找到jbpm.hibernate.properties的值后,会用该值作为配置文件取创建JbpmSessionFactory
jbpm.hibernate.properties内容:
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.connection.datasource=java:/DefaultDS
# hibernate.show_sql=true
|
是用DataSource来创建JbpmSessionFactory,DataSource需要在Server.xml中配置,如果你不想配置DataSource的话,把这行也注释掉
3、上面两项内容都被注释掉的话,getInstance()会查找jbpm.hibernate.cfg.xml的值,用该值作为配置文件创建一个JbpmSessionFactory。
说明,这里只是讲了怎么配置相关文件,没有说到怎么部署,关于这方面内容,请参考User Guide chapter 5