JBPM 3.2.3之【ERROR Delegation 】异常

刚刚接触JBPM,理解不是太深刻,在测试节点异常功能的时候遇到了【ERROR Delegation 】异常

ERROR Delegation : couldn't instantiate delegation class 'test.CatchNodeExceptionAction'

ERROR Delegation : couldn't load delegation class 'test.CatchNodeExceptionAction'

具体问题应该是在发布流程模板到数据库时出现问题,

我到数据库中SELECT * FROM jbpm_delegation 到表中查询,查看到

ID_ CLASSNAME_ CONFIGTYPE_ PROCESSDEFINITION

13 test.CatchNodeExceptionAction field 8

所以一开始我就以为代理类建立了,但是事实上我被这个所蒙骗了,到对应的项目目录下,看一下该类是否被编译

进入G:/exercisespace/jbpm-test/bin/test 编译的class目录下却没有发现编译的test.CatchNodeExceptionAction

可见这里出现的问题的就是CatchNodeExceptionAction类,

所以就检查:

1.类名和流程模板配置文件中类名是否一致,(这个虽然说是小儿科,但是大部分都会栽在这个问题上)

2.进入流程模板的【Deployment】页签下,查看Java Classes and Resources 配置下面是否选择了所依赖的类,虽然Eclipse会默认帮你选择,但是还检查一遍为好

3.检查你项目依赖的jar是否齐全,我就是栽在了这个问题上,因为要连接Sql2005,之前在build Path时加的外部jar,后来位置发生变动,再打入jar包,但是之前的错误引用没有从ClassPath里面删除,所以报了这个错误。

我的jBPM版本是3.2.3。

但是经过测试得出一个小结论,但不知道是否正确,

我配置了

<exception-handler exception-class="java.lang.Exception">
<action class="test.CatchNodeExceptionAction"></action>
</exception-handler>

其中 class="test.CatchNodeExceptionAction" 在没有编译通过的情况下,强行发布流程模板到数据中,

流程模板是能够正常发布到JBPM_PROCESSDEFINITION表中,

并且到JBPM_DELEGATION 表中,会发现流程模板所需要的actionHandle类也正常的发布到表中(不管是否编译成功)。

所以若是不仔细的话,异常就会在RunTime的时候才会出现

呵呵,若有问题还请大家指教,jBPM学习中,非常乐意接受意见

你可能感兴趣的:(error)