Help needed : missing scheduler while testing a timer
sonicfab Sep 20, 2007 10:46 AMHi.
I'm testing a simple process with one node and a timer at that node, and I get the following error :
16:34:23,466 INFO [STDOUT] 16:34:23,466 ERROR [GraphElement] action threw exception: service 'scheduler' unavailable org.jbpm.svc.JbpmServiceException: service 'scheduler' unavailable at org.jbpm.svc.Services.getCurrentService(Services.java:91) at org.jbpm.svc.Services.getCurrentService(Services.java:81) at org.jbpm.scheduler.def.CreateTimerAction.execute(CreateTimerAction.java:66) at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:255) at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:220) at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:190) at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:174) at org.jbpm.graph.def.Node.enter(Node.java:302) at org.jbpm.graph.def.Transition.take(Transition.java:151) at org.jbpm.graph.def.Node.leave(Node.java:393) at org.jbpm.graph.node.StartState.leave(StartState.java:70) at org.jbpm.graph.exe.Token.signal(Token.java:194) at org.jbpm.graph.exe.Token.signal(Token.java:139) at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:270) at com.bt.intfwk.testjbpm.ServletTestJbpm.doGet(ServletTestJbpm.java:65) at javax.servlet.http.HttpServlet.service(HttpServlet.java:697) at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595)
My test setup is a simple servlet whose doGet method send a signal to the process :
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString( "<process-definition >"+ "<start-state name=\"start'\">"+ "<transition name=\"\" to=\"TimerNode\"></transition>"+ "</start-state>"+ "<node name=\"TimerNode\"> "+ "<timer name=\"testTimer\" "+ "duedate=\"1 business minute\" >"+ "</timer>"+ "<transition name=\"\" to=\"end1\"></transition>"+ "</node>"+ "<end-state name=\"end1\"></end-state>"+ "</process-definition>" ); ProcessInstance instance = new ProcessInstance(processDefinition); instance.signal();