`
wuxufeng8080
  • 浏览: 49443 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
社区版块
存档分类
最新评论

jBPM流程发布

    博客分类:
  • 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 楼 ladyloveme 2007-07-18  
你的语言表达实在太有意思了,哈哈,写的挺好!!

相关推荐

    jbpm流程设计器 + 生成对应xml文档 完美实现

    jbpm流程设计器 + 生成对应xml文档: 内部含有: jbpm控件 1: myflow2:插件原本内容 访问地址:http://localhost:8080/jbpmFlow1/myflow2/demo4.jsp 实现生成对应xml文档 并写有对xml文档读取存储到对象中,...

    JBPM流程引擎资料

    文档《JBPM流程引擎资料》详细介绍了如何利用JBPM开发流程应用,涵盖了从框架构造到节点处理的方方面面。 首先,文档提到了jBPM的基本概念。jBPM是一个轻量级流程引擎,它允许开发者以模块化的方式管理业务流程。...

    JBPM流程监控的实现过程

    ### JBPM流程监控的实现过程详解 JBPM作为一款由JBOSS公司推出的开源工作流管理工具,以其强大的功能和灵活性赢得了众多开发者的青睐。尽管如此,JBPM原生并未直接提供流程监控功能的API,这无疑给那些希望在企业...

    eclipse3.4解压版带jbpm流程定义插件

    在提供的压缩包"eclipse3.4解压版带jbpm流程定义插件"中,用户无需安装,仅需解压即可开始使用,这极大地简化了部署过程。这意味着Eclipse 3.4已经被配置好,集成了jbpm的相关库和插件,用户可以直接打开Eclipse进行...

    JBPM工作流开发指南

    5.2 JBPM流程发布 45 5.2.1 搭建JBPM的WEB应用 46 5.2.2 发布第一个流程 48 六、日历(Scheduler) 54 6.1 Scheduler在C/S程序上的应用 54 6.2 Scheduler 在Web上的应用 57 6.3 Scheduler时间的分类 60 七、异步执行 ...

    jbpm 请假流程定义发布项目

    **jbpm 请假流程定义发布项目** jbpm(Java Business Process Management)是一个开源的工作流管理系统,主要用于业务流程的建模、执行和管理。这个项目主要介绍如何使用jbpm来实现一个具体的请假流程,并且提供了...

    JBPM3.2 表初始化,流程发布

    **JBPM3.2 表初始化与流程发布详解** JBPM(Java Business Process Management)是一款开源的工作流管理系统,主要用于业务流程的建模、部署、执行和监控。在JBPM3.2版本中,用户需要对数据库进行初始化,以便正确...

    JBPM创建数据库,流程定义以及发布学习笔记

    【JBPM创建数据库,流程定义以及发布学习笔记】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,用于实现业务流程自动化。本笔记主要涉及如何创建JBPM所需数据库,定义流程,以及发布流程。...

    jbpm4.4工作流开发指南pdf

    - **JBPM 流程发布**: - 搭建 WEB 应用:创建包含 JBPM 的 Web 应用。 - 发布第一个流程:将定义好的流程部署到应用服务器。 #### 六、日历 (Scheduler) - **Scheduler 的应用**: - C/S 程序上的应用:在...

    JBPM 开发指南

    - **JBPM 流程发布**: 包括在应用服务器上部署 JBPM 工程,并发布流程定义。 #### 六、日历 (Scheduler) **日历功能** 是 JBPM 提供的一项高级特性,它允许用户为流程中的事件安排特定的时间: - **C/S 程序上的...

    JBPM3.2 表初始化,流程发布第一课

    【JBPM3.2 表初始化与流程发布详解】 JBPM(Java Business Process Management)是一款开源的工作流管理系统,主要用于业务流程的建模、部署、执行和监控。在JBPM3.2版本中,表初始化是系统设置的重要环节,而流程...

    流程开发java插件jbpm 使用说明 个人总结

    1. **加载(发布)流程定义**:通过Eclipse Designer或其他工具创建ProcessDefinition,并加载到应用程序中。 2. **启动流程**:基于流程定义创建ProcessInstance,开始实际的业务流程。 3. **处理任务**:参与人员...

    jbpm 建表 发布流程 struts2 架构

    这里已经添加了jbpm的表hibernate建表测试代码,通过运行junit就可以建表和发布流程,之前的struts2代码不变,CreateSchemaTest.java是建jbpm表,DeployProcessTest.java是发布jbpm流程,到这里hibernate已经部署成功,接...

    JBPM工作原理及表结构详解

    - **发布流程**:使用`DEPLOY`命令将流程定义发布到系统。 - **上传ZIP包**:包含流程定义(PNG和JPDL.XML)的ZIP文件。 - **启动流程**:通过流程定义的关键字`STARTPROCESSINSTANCEBYKEY`启动新实例。 - **...

    jbpm开发指南--jbpm全面介绍

    通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...

    JBPM4 开发文档 实例 流程

    该项目于2004年10月18日发布2.0版本,并随后成为JBoss企业中间件平台的一部分,更名为JBoss jBPM。JBPM的核心特点之一是它使用自定义的流程定义语言JPdl,将业务流程视为UML状态图,简化了流程设计。 **JPdl 介绍**...

    JBPM实践之:并发子流程的实现.doc

    发布这些流程定义的顺序并不影响并发子流程的实现。主流程用于协调整个并发过程,而子流程则代表并发执行的任务单元。 关键在于TaskNode的使用。TaskNode在流程图中表示一个任务节点,通常用于分配工作项给用户或...

    JBPM视频教程 JPDL 流程设计器

    在掌握了流程设计后,教程将进入发布工程的环节。这涉及到将设计好的流程模型部署到JBPM服务器上,使其可供实际应用调用。通过JSP(JavaServer Pages)页面,你可以实现与用户的交互,启动和跟踪流程实例。这部分...

Global site tag (gtag.js) - Google Analytics