where to store action?database or runtime classes?
windspy Nov 26, 2005 4:25 AMhere is piece of process definition:
<start-state name="new disclosure-assitant"> <task name="Assistant new a disclosure" swimlane="assitant"> ... </task> <event type="node-leave"> <action name="initial" class="idap.process.initial.InitialGlobalVariables" /> </event> <transition name="default" to="choose avaiable time-board" /> </start-state> <task-node name="choose avaiable time-board"> <task name="Bd choose time" duedate="36 hours"> <assignment class="idap.process.delegation.BoardMembersAssign" /> ... </task> <event type="node-leave"> <action class="idap.process.derived.StoreParticipants" /> </event> <transition .../> </task-node>
deploy.xml like:
<copy todir="build/invention/classes"> <fileset dir="build/classes.idap" includes="idap/process/**" /> </copy>
and the actions in the start-state node and the assignment class works fine,either deploy in the database or put int runtime classes folder in web-inf of application,but the action of idap.process.derived.StoreParticipant can not works in both of methods.it throws:
action threw exception: couldn't get value for file 'classes/idap/process/derived/StoreParticipants.class' java.lang.RuntimeException: couldn't get value for file 'classes/idap/process/derived/StoreParticipants.class' at org.jbpm.file.def.FileDefinition.getBytes(FileDefinition.java:160) at org.jbpm.instantiation.ProcessClassLoader.findClass(ProcessClassLoader.java:34) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.jbpm.instantiation.Delegation.instantiate(Delegation.java:105) at org.jbpm.instantiation.Delegation.getInstance(Delegation.java:90) at org.jbpm.graph.def.Action.execute(Action.java:78) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:186) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:149) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:133) Caused by: java.lang.RuntimeException: couldn't get value for file 'classes/idap/process/derived/StoreParticipants.class' at org.jbpm.file.def.FileDefinition.getBytes(FileDefinition.java:160) at org.jbpm.instantiation.ProcessClassLoader.findClass(ProcessClassLoader.java:34) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.jbpm.instantiation.Delegation.instantiate(Delegation.java:105) at org.jbpm.instantiation.Delegation.getInstance(Delegation.java:90) at org.jbpm.graph.def.Action.execute(Action.java:78) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:186) ... 56 more Caused by: java.lang.RuntimeException: file 'classes/idap/process/derived/StoreParticipants.class' not found in db at org.jbpm.file.def.FileDefinition.getByteArray(FileDefinition.java:184) at org.jbpm.file.def.FileDefinition.getBytesFromDb(FileDefinition.java:176) at org.jbpm.file.def.FileDefinition.getBytes(FileDefinition.java:157) ... 63 more
but i searched in the database,tables of jbpm_bytearray and jbpm_byteblock,the action classes' file path and data are all complete.
why?where should i store the action?Is there something wrong with that?
anyone have the same experience?
thank you in advance.
windspy