decision node throw an exception
abhikal Oct 20, 2005 5:48 AMHi
Please help me understand that why i get an Exception from JBOSS when i try to transict from to . if i remove the tag and use tag the program runs fine.
for your knoweledge i have executed the same program on eclipse and its running perfect.
is is problem due to version of JBOSS JBPM server, because in console i get the warning that transtion to decision tag is resolved
org.jbpm.graph.def.DelegationException
org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:299)
org.jbpm.graph.def.GraphElement.raiseException(GraphElement.java:293)
org.jbpm.graph.node.Decision.execute(Decision.java:87)
org.jbpm.graph.def.Node.enter(Node.java:284)
org.jbpm.graph.def.Transition.take(Transition.java:92)
org.jbpm.graph.def.Node.leave(Node.java:349)
org.jbpm.graph.exe.Token.signal(Token.java:127)
org.jbpm.graph.exe.Token.signal(Token.java:92)
cs.CustomerService.doGet(CustomerService.java:68)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
the servlet code on jboss is
package cs; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jbpm.db.JbpmSession; import org.jbpm.db.JbpmSessionFactory; import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; public class CustomerService extends HttpServlet { public void doGet(HttpServletRequest rq,HttpServletResponse res) { ProcessDefinition pd =ProcessDefinition.parseXmlResource("processdefinition.xml" ); ProcessInstance pi=new ProcessInstance(pd); PrintWriter pw; res.setContentType("text/html"); try { pw = res.getWriter(); pw.println("hello hw r u"); pw.println("the 1 value is :-"+pd); pw.println("<br>the value is :-"+pi); pw.println("<br>---- :-"+pi.getRootToken().getNode().getName()); Token t=pi.getRootToken(); pw.println("<br>++++"+t.getNode().getName()); t.signal(); pw.println("<br>-----"+t.getNode().getName()); t.signal(); pw.println("<br>-----"+t.getNode().getName()); } catch (IOException e) { e.printStackTrace(); } } }
the processdefinition.xml is
<?xml version="1.0" encoding="UTF-8"?> <process-definition name="customerservice"> <start-state name="customer calls"> <transition to="tt"></transition> </start-state> <state name="tt"> <transition to="tonepulse"></transition> </state> <decision name="tonepulse"> <transition to="what"> <condition>x == 1</condition> </transition> <transition to="transfer"> <condition>x == 2</condition> </transition> </decision> <state name="what is the purpose of the call"> <transition to="end"></transition> </state> <state name="transfer to customer service department"> <transition to="end"></transition> </state> <end-state name="end"> </end-state> </process-definition>