jBPM流程发布

最近在研究jBPM,碰到了一大堆问题,这个郁闷的了。不过到今天为止,终于小有成果,可喜可贺啊,:)

下面主要讲一下最近碰到的一些问题,疑问以及解决方案

1、流程的测试

刚开始不知道怎么用插件,流程代码都是手写的,结果等我好不容易写完之后发布,发现无法编译这个流程文件,这个郁闷啊。肯定是我哪里写错了。然后去找有没有dtd文件,结果好不容易找到了,但是好像没有起作用,我很奇怪,怎么这么好的东西,会没有dtd文件呢。最后还是决定用插件,因为找到了一篇怎么用插件的文章,原来所有的东西都可以做的,哈哈哈。真是不错。

还有一个比较郁闷的地方就是jBPM的api doc,这个简直就不是doc,里面基本上没有说明文字,晕倒。这就是所谓jboss出品,真想扁他们。结果每次出了问题都要到网上乱搜一汽,运气好还能找到一点有用的东西。以上纯属牢骚。

下面说一下测试。

我是用编程的方式发布我的流程的

代码如下,自己写的一个发布类

 

但是这个发布类有一个问题,无法发布jpg文件到数据库,不过似乎在测试阶段也不需要图片。正式发布的时候,可以通过插件直接上传到服务器。

还有一个疑问,user guide 里说Process archives can also be deployed programmatically with the class org.jbpm.jpdl.par.ProcessArchiveDeployer ,但是这个类在3.1.2里面根本没有,不知道怎么回事

然后编写unit test ,在单元测试里面,针对每个流程路径进行测试。

2、流程发布

在完成单元测试之后,就可以通过插件直接上传到服务器了,不过事先你的服务器要有上传发布的功能。我的是直接从websale修改过来了。让这个demo跑起来,花了好大的劲。主要是版本问题。最大的一个问题在JbpmContext的创建上面。

原来的是这个样子:JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();

但是这个方法在新版本中已经不支持,而且好像还不能很好的功能。从字面意思来看,应该是获得当前存在的context,但是,context只有close之后才能把相应的事务提交,所以这个几乎每次我都新创建了一个。

就想其他人一样,也有点不是很理解,为什么都已经save的,怎么还没有提交。既然要close才commit,那要getCurrentJbpmContext()方法有什么用了。

最后我的折中办法

java 代码
  1. JbpmConfiguration config = JbpmConfiguration.getInstance();   
  2.   
  3. JbpmContext jbpmContext = config.getCurrentJbpmContext();   
  4. if (jbpmContext == null) jbpmContext = config.createJbpmContext();  

在context这个问题上,就判断一下是否为空,如果空的话就创建一个,就像我上面说的,每次只有close了才能把事务提交,估计这个context也就没有了,每次都是要创建的。

这个问题,是我在调试web程序 的时候出现最多的问题,每次都是NullException,晕死了。结果都是context 空的问题。也不知道jboss每次版本更新之后怎么不把demo也改一下,彻底的服了。

3、其他问题

还有一个就是JSF问题,在使用CommondLink这个组件的时候,一定要把这个组件包含在Form里面,也不知道这个是JSF的bug,还是其他的原因,这个问题也折腾了我好久,后来搜了一下,原来也有很多人有这个问题,狂晕啊。sun不至于这么菜吧,唉。

 

先写到这里吧,到现在总算能把我的web跑起来,也能看到我的流程图,真是开心啊。简单的流程也能跑了,下面继续努力。要实现负责的流程还有很多路要走。最复杂的还是流程的实现以及与外部逻辑的整合问题。加油。。。。

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值