[jboss-user] [JBoss jBPM] - Problems with JBPM Ttimer EJB from a simple Web App

Toriton do-not-reply at jboss.com
Thu Mar 26 07:10:58 EDT 2009


Hi all i have a strange problem to navigate a process from a servlet.

The servlet is simple , it get as input the id of the process, and the name of transition where it have to go for the next token or node.

The names transitions's are sended with radio buttons and the values inside them come from iterating the Map : mynode.getLeavingTransitionsMap().

Now the problem is this exception:

  | 2009-03-26 11:42:05,463 DEBUG [org.jbpm.graph.def.GraphElement] executing action 'action[MailSender]'
  | 2009-03-26 11:42:05,463 DEBUG [org.jbpm.graph.exe.Token] token[12252] is locked by token[12252]
  | 2009-03-26 11:42:05,463 DEBUG [org.hibernate.impl.SessionImpl] initializing proxy: [org.jbpm.graph.node.State#11131]
  | 2009-03-26 11:42:05,463 DEBUG [org.jbpm.graph.def.GraphElement] event 'timer-create' on 'State(inagenzia)' for 'Token(/)'
  | 2009-03-26 11:42:05,463 DEBUG [org.jbpm.graph.exe.Token] token[12252] is unlocked by token[12252]
  | 2009-03-26 11:42:05,463 ERROR [org.jbpm.graph.def.GraphElement] action threw exception: ejb timer entity lookup problem
  | org.jbpm.JbpmException: ejb timer entity lookup problem
  | 	at org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory.getTimerEntityHome(EntitySchedulerServiceFactory.java:45)
  | 	at org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory.openService(EntitySchedulerServiceFactory.java:62)
  | 	at org.jbpm.svc.Services.getService(Services.java:177)
  | 	at org.jbpm.svc.Services.getCurrentService(Services.java:98)
  | 	at org.jbpm.svc.Services.getCurrentService(Services.java:89)
  | 	at org.jbpm.scheduler.def.CreateTimerAction.execute(CreateTimerAction.java:79)
  | 	at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:284)
  | 	at org.jbpm.graph.def.GraphElement.executeActions(GraphElement.java:241)
  | 	at org.jbpm.graph.def.GraphElement.fireAndPropagateEvent(GraphElement.java:213)
  | 	at org.jbpm.graph.def.GraphElement.fireEvent(GraphElement.java:196)
  | 	at org.jbpm.graph.def.Node.enter(Node.java:371)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
  | 	at org.jbpm.graph.def.Node_$$_javassist_49.enter(Node_$$_javassist_49.java)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:167)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:479)
  | 	at org.jbpm.graph.exe.ExecutionContext.leaveNode(ExecutionContext.java:155)
  | 	at org.jbpm.graph.node.Decision.execute(Decision.java:194)
  | 	at org.jbpm.graph.def.Node.enter(Node.java:390)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
  | 	at org.jbpm.graph.def.Node_$$_javassist_49.enter(Node_$$_javassist_49.java)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:167)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:479)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
  | 	at org.jbpm.graph.def.Node_$$_javassist_49.leave(Node_$$_javassist_49.java)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:223)
  | 	at org.jbpm.graph.exe.Token.signal(Token.java:180)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:173)
  | 	at org.jbpm.graph.exe.Token_$$_javassist_65.signal(Token_$$_javassist_65.java)
  | 	at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:319)
  | 	at it.test.servlet.CallserServlet.doGet(CallserServlet.java:63)
  | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
  | 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  | 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
  | 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
  | 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
  | 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
  | 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
  | 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
  | 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
  | 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
  | 	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
  | 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
  | 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
  | 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
  | 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
  | 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
  | 	at java.lang.Thread.run(Thread.java:595)
  | Caused by: javax.naming.NameNotFoundException: ejb not bound
  | 	at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
  | 	at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
  | 	at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
  | 	at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
  | 	at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:667)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:774)
  | 	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627)
  | 	at javax.naming.InitialContext.lookup(InitialContext.java:351)
  | 	at org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory.lookup(EntitySchedulerServiceFactory.java:54)
  | 	at org.jbpm.scheduler.ejbtimer.EntitySchedulerServiceFactory.getTimerEntityHome(EntitySchedulerServiceFactory.java:43)
  | 	... 65 more
  | 


I tried retrieving the process instance with:

  | JbpmContext.getProcessInstance(long);
  | JbpmContext.getProcessInstanceForUpdate(long);
  | JbpmContext.loadProcessInstance(long);
  | 
The exception is thrown in any case, but if i use the console for the same transition, the exception is not thrown. And after that i used the console , i can use the servlet as well and no more exceptions will be thrown, using the signal() o signal(transitionName).

I don't know how, but seem that there is something not initialized by me in the Servlet , instead the console of JBPM create something that i'm missing.

here part of the code of the servlet :



  | JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
  | JbpmContext ctx = jbpmConfiguration.createJbpmContext();
  | ProcessInstance pInst = ctx.getProcessInstanceForUpdate(Long.parseLong(id));
  | pInst.signal(transitionName);
  | 


could anyone help please?.


Thanks in advance.
T.



View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4221229#4221229

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4221229



More information about the jboss-user mailing list