[rules-users] Drools Flow Events Not Working

jawa agohar at gmail.com
Fri Sep 10 13:17:55 EDT 2010


Hi,
I am using drools flow 5.1.1 with JPA. I want my flow to stop at a certain
point so I use an AND node with one incoming RuleGroup node and one incoming
Event node. so as AND guarantees that It executes after both of the nodes
are completed. So my flow stops there. Then i load the session from db and
use following to raise an event on the session:

StatefulKnowledgeSession session =
JPAKnowledgeService.loadStatefulKnowledgeSession(9,knowledgeBase, null,
environment);
		ProcessInstance p = session.getProcessInstance(9);
		System.out.println("Proc Found -> " + p);
		if (p != null && p.getState()==ProcessInstance.STATE_ACTIVE)
		{
			p.signalEvent("Test", vo);
		}

But it fails with following exception:

Exception in thread "main" java.lang.NullPointerException
	at
org.drools.process.instance.impl.ProcessInstanceImpl.getProcess(ProcessInstanceImpl.java:67)
	at
org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.getWorkflowProcess(WorkflowProcessInstanceImpl.java:185)
	at
org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent(WorkflowProcessInstanceImpl.java:346)
	at com.my.poc.PocFlowServiceImpl.processFlow(PocFlowServiceImpl.java:120)
	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:597)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
	at
org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
	at
org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
	at
org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
	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:597)
	at
org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
	at
org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_20004366.invoke(InvocationContextInterceptor_z_fillMethod_20004366.java)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
	at
org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_20004366.invoke(InvocationContextInterceptor_z_setup_20004366.java)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.tx.StatelessBMTInterceptor.handleInvocation(StatelessBMTInterceptor.java:106)
	at org.jboss.ejb3.tx.BMTInterceptor.invoke(BMTInterceptor.java:55)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:186)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:421)
	at
org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53)
	at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
	at
org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
	at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:891)
	at
org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:744)
	at
org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:697)
	at
org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:524)
	at
org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:232)
	at
org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:211)
	at org.jboss.remoting.Client.invoke(Client.java:1724)
	at org.jboss.remoting.Client.invoke(Client.java:629)
	at
org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
	at $Proxy3.invoke(Unknown Source)
	at
org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
	at
org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
	at $Proxy2.processFlow(Unknown Source)
	at net.plus.kbd.poc.StartFlow.main(StartFlow.java:39)
	at
org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at
org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
	at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
	at $Proxy3.invoke(Unknown Source)
	at
org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
	at
org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
	at $Proxy2.processFlow(Unknown Source)
	at com.my.poc.StartFlow.main(StartFlow.java:39)

Then i tried to use this code:

	      SignalEventCommand command = new SignalEventCommand();
	      command.setProcessInstanceId(9);
	      command.setEventType("Test");
	      command.setEvent(true);
	      session.execute(command);

But it fails:

Exception in thread "main" java.lang.NoSuchMethodError:
org.drools.runtime.StatefulKnowledgeSession.execute(Lorg/drools/command/Command;)Lorg/drools/runtime/ExecutionResults;
	at com.my.poc.PocFlowServiceImpl.processFlow(PocFlowServiceImpl.java:127)
	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:597)
	at
org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)

Although I have drools jars in my classpath. All required jars including
drools-core-5.1.1.jar

Any idea how can i raise an event ??

Thanks
-- 
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Drools-Flow-Events-Not-Working-tp1453738p1453738.html
Sent from the Drools - User mailing list archive at Nabble.com.



More information about the rules-users mailing list