couldn't load delegation class(无法加载自定义类)

linsl 2008-03-03

       自定义的AssignmentHandler类无法加载

 

<start-state name="Ship Order Return">
  <task name="Send Item" swimlane="Shipping">
   <controller>
    <variable access="read,write,required" name="tracking number"></variable>
   </controller>
  </task>
  <transition to="Receive Return" name="Shipping">
   <action name="first transition" class="action.FirstTransition"></action>
  </transition>
 </start-state>

<task-node name="Receive Return">
  <task name="Receive Item">
   <assignment class="task.FirstAssignmentHandler" config-type="field"></assignment>
   <controller>
    <variable access="read" name="tracking number"></variable>
    <variable access="read,write,required" name="received date"></variable>
   </controller>
  </task>
  <transition to="fork1" name="Process Return"></transition>
 </task-node>

 

运行时出现如下错误:

12:49:24,046 ERROR [Delegation] couldn't load delegation class 'task.FirstAssignmentHandler'
java.lang.ClassNotFoundException: class 'task.FirstAssignmentHandler' could not be found by the process classloader
 at org.jbpm.instantiation.ProcessClassLoader.findClass(ProcessClassLoader.java:67)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

.....

 

FirstAssignmentHandler的位置也放到web-inf/class对应的包下了,怎么会出现无法加载了,哪位请教点一下小弟,(注start-state里自定义的action却能正常执行)

 

richmond 2008-03-03
部署流程的时候这个类应该是被放到数据库里面的吧,建议重新部署一次流程,确保一下把这个类的部署进去
linsl 2008-03-03
已经放进去了
linsl 2008-03-03
你好,谢谢你回答我的贴子
有个问题想请教你一下,

根据你的回答,重新布置时我注意到以下信息:

16:28:02,390 DEBUG [FileDefinition] preparing file 'processimage.jpg' for storage in the database
16:28:02,390 DEBUG [FileDefinition] preparing file 'forms.xml' for storage in the database
16:28:02,390 DEBUG [FileDefinition] preparing file 'processdefinition.xml' for storage in the database
16:28:02,390 DEBUG [FileDefinition] preparing file 'gpd.xml' for storage in the database
16:28:02,390 DEBUG [FileDefinition] preparing file 'classes/action/FirstTransition.class' for storage in the database


其中红颜色部分也是我自定义的一个action类,这个类可以布置到数据库中,而我自定义的另一个类:

<assignment class="task.FirstAssignmentHandler" config-type="field"></assignment>

这个为什么没有成功布置进去,在表select * from jbpm_bytearray t中可以查询到第一个自定义的类,第二个却找不到,运行时报错也是第二个类无法加载
kencool 2008-03-04
检查类名是否错误吧。一个行而另一个不行,估计是拼写这样的问题
linsl 2008-03-04
检查了不是因为拼写的问题.task.FirstAssignmentHandler没有完全布置到数据库中
richmond 2008-03-04
用eclipse部署的时候

在右面java classes and resources里面把自己写的类选上

我记得一般jbpm会帮你选上的吧

anyway 确认一下吧
linsl 2008-03-05
jbpm 的eclipse 插件里有个"Deploy Process Archive..."按钮,直接点击这个按钮布置,不用选什么文件的