jbpm学习备注
1.安装到tomcat
>cd install
>ant -Ddatabase=mysql demo.setup.tomcat
说明:在安装机器上需要一个mysql服务器,并且创建一个数据库名字叫jbpmdb,更改install/jdbc/mysql.properties的配置。如果使用默认的hsqldb,在导入sql时会发生一个jdbc batch update错误,因此使用mysql可以绕开这个错误。
2.启动tomcat
控制台:
http://localhost:8080/jbpm-console/
用户名/密码:alex/password
web流程设计器:
http://localhost:8080/jbpmeditor/p/explorer/
目前web流程设计器不支持chrome浏览器。
3.jbpm的文档和书籍极少。国外一本,国内两本,而且仅仅凭官方的用户指南,连入门都无法入,例如你不知道怎么部署一个流程定义,不知道怎么使用安装后默认的流程实例……
只能去看它自带的那些例子,方法是:
-用eclipse导入example下的示例
-用jbpm-console去一个个运行实例来看运行结果
这两条路都需要你自己去动手和摸索,没有文档指引。
4.如何利用ant任务来部署流程
jbpm提供了一个ant task,注意,它是直接通过数据库来实现部署,因此必须指明数据库类型、连接等属性信息。(这点jbpm的用户手册丝毫不提,光凭用户手册的那些ant脚本是不可能部署成功的)
1)创建一个java工程
2)写一个自己的jpdl,例如myjbpm1.jpdl.xml
3)选中工程,eclipse>export>ant buildfiles,导出该java工程的一份初始ant build脚本
4)从jbpm_home/examples/build.xml中拷贝一些属性
<property name="jbpm.home" value="/home/huangwy/applications/jbpm4.4/jbpm-4.4"/>
<property name="database" value="mysql" />
<property name="bind.address" value="localhost" />
<property name="jdbc.properties.dir" value="${jbpm.home}/install/jdbc" />
<property file="${jdbc.properties.dir}/${database}.properties" />
<property name="tomcat.version" value="6.0.26" />
<property name="tomcat.parent.dir" value="${jbpm.home}" />
<property name="tomcat.home" value="${tomcat.parent.dir}/apache-tomcat-${tomcat.version}" />
<property name="tomcat.filename" value="apache-tomcat-${tomcat.version}.zip" />
<property name="tomcat.lib.dir" value="${tomcat.home}/lib" />
<property name="tomcat.webapps.dir" value="${tomcat.home}/webapps" />
有些属性可能是冗余的,但是拷贝过来问题不大,就留着它们吧!注意我用的是mysql数据库,如果你安装jbpm成功,那么mysql数据库连接这些是先经过配置的。
然后添加一些ant目标和任务
<taskdef name="jbpm-deploy" classname="org.jbpm.pvm.internal.ant.JbpmDeployTask" classpathref="myjbpm.classpath"/>
<target name="clean.deploy">
<delete dir="${basedir}/deploy"/>
</target>
<target name="init.deploy">
<mkdir dir="${basedir}/deploy"/>
</target>
<target name="jar.deploy" depends="clean.deploy,init.deploy,build">
<jar destfile="${basedir}/deploy/myjbpm.bar">
<fileset dir="bin"/>
</jar>
<jbpm-deploy file="${basedir}/deploy/myjbpm.bar"/>
</target>
5)将example/src下面的xml和.properties、.css文件拷贝到工程的源代码目录,对jbpm.hibernate.cfg.xml文件改成mysql的,默认是hsql
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpmdb</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.format_sql">true</property>
<mapping resource="jbpm.repository.hbm.xml" />
<mapping resource="jbpm.execution.hbm.xml" />
<mapping resource="jbpm.history.hbm.xml" />
<mapping resource="jbpm.task.hbm.xml" />
<mapping resource="jbpm.identity.hbm.xml" />
</session-factory>
</hibernate-configuration>
6)运行
ant jar.deploy就可以成功部署myjbpm.bar。
7)现在到jbpm-console去玩玩这个简单流程吧!