本实例提供一个Jbpm4.4工作流的简单实例的环境搭建:以Jboss5.0为应用服务器,用Maven管理Jbpm4.4的Jar包引用关系,开发工作流系统的开发环境。
本实例很简单,但是它是一个分布式系统中工作流项目的开始,如果您对此感兴趣,想深入了解工作流相关知识与业务,请继续关注我的后续文章。
下面,首先来看一下这个Demo:
下面是项目的目录结构:
父项目中,根据Maven的规范,配置了相关依赖包的引用,包括:Jbpm4.4的引用包引用、Junit4.9的测试包引用,hibernate的引用包,以及应用服务器Jboss的Client引用等。
接口中,提供了部署流程、创建实例、获得当前节点等必须方法。
实现中,提供了对接口方法的实现。同时,提供了一个简单的JPDL流程,JBPM的相关配置文件,以及测试部分的部署。
实现部分的Pom中的引用:
这里需要加入Ejb所需的Jar包引用,是因为在使用maven对项目打包的时候,需要用到这些包,在开发环境中通过User Library的方式引入的包,Maven是管理不到的,它只能通过POM文件的引用进行打包。
这里的这些关于Jbpm4.4的引用,其实都在Jbpm.jar文件里面。也就是说,如果我们不用maven管理项目,只需要将jbpm.jar文件加入到你开发环境的classpath路径就OK了。
<dependencies> <!-- 在Maven中引入Ejb的需要的Jar --> <dependency> <groupId>org.apache.openejb</groupId> <artifactId>javaee-api</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>gxpt_jbpm_service</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>gxpt_common_tool</artifactId> <version>${project.version}</version> <scope>provided</scope> </dependency> <!-- jBPM4.4 --> <dependency> <groupId>org.jbpm.jbpm4</groupId> <artifactId>jbpm-api</artifactId> </dependency> <dependency> <groupId>org.jbpm.jbpm4</groupId> <artifactId>jbpm-log</artifactId> </dependency> <dependency> <groupId>org.jbpm.jbpm4</groupId> <artifactId>jbpm-bpmn</artifactId> </dependency> <dependency> <groupId>org.jbpm.jbpm4</groupId> <artifactId>jbpm-db</artifactId> </dependency> <dependency> <groupId>org.jbpm.jbpm4</groupId> <artifactId>jbpm-jpdl</artifactId> </dependency> <dependency> <groupId>org.jbpm.jbpm4</groupId> <artifactId>jbpm-pvm</artifactId> </dependency> <dependency> <groupId>org.livetribe</groupId> <artifactId>livetribe-jsr223</artifactId> <version>2.0.6</version> <scope>provided</scope> </dependency> <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.10.0</version> <scope>provided</scope> </dependency> </dependencies>
maven+jbpm4.4+Jboss5.0
1、使用Maven,需要我们安装配置好Nexus私服(本Demo使用Nexus私服)。
由于工作环境下,网络受限,使用正常的方式配置,只能档下来nexus索引,无法根据索引档下来jar包。解决方案就是,先根据Nexus档下来索引,然后直接连接远程仓库,去远程下载jar包,再将jar包放到私服上,供大家使用。具体操作请看这里:http://blog.csdn.net/shan9liang/article/details/23706613
如果你的工作环境也受限,可以尝试上面方法。
2、上面已经提到,本demo中关于Jbpm4.4的引用,其实都在jbpm.jar一个文件中,如果你不适用maven管理项目,直接引用这个jar就OK了。开发的过程中,肯定会需要其他的jar文件,需要的时候再加。
3、以Jboss5.0为应用服务器,接口的实现发布称无状态的SessionBean。开发以为会在部署jar后,动态创建表;而实际上是在部署流程之后,动态创建表;
4、在打包实现时,回报一个找不到jndi的错误,但是不影响运行。在运行测试中部署流程的代码时,依然能够根据JNDI服务,从应用服务器的热部署目中,取得实例。
5、吐槽Jbpm4.4官网上的安装方式。大家可以尝试,自行选择。
由于jbpm也需要简单的“安装”,那么它为了让开发人员快速上手,jbpm就用Ant写了一个大脚本,包括:从网上下载jboss、下载Eclipse、web设计器、以及安装这些和插件。只要你运行了它写的ant脚本,你需要做的就是去喝杯咖啡,聊聊天的等待了。
不过,我认为这也需要你看懂它ant脚本的大概流程,然后按照它的思路配置你自己的环境。这个过程可能要求你懂Ant,不过这是复杂一次,幸福一辈子的事情。
使用本文的方式也很好,只是需要你自己安装JPDL插件,自己拷贝配置文件。自己配置jboss、配置设计器等等。你熟悉了,也很简单,自己选择吧。