Custom Work Item Handler Error in jBPM maven project

Visto 696 veces
Saltar al primer mensaje no leído

Vnay kndl

no leída,
22 jul 2017, 3:46:2522/7/17
a jBPM Usage
Hi, I have created jbpm maven project where I dont want to use the default persistence feature and created a custom work item handler and configured it..

But I'm getting below error. 

Exception in thread "main" org.jbpm.workflow.instance.WorkflowRuntimeException: [com.sample.bpmn:1 - Task 1:3] -- Could not find work item handler for Human Task
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:161)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerNodeInstance(NodeInstanceImpl.java:337)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:296)
at org.jbpm.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:66)
at org.jbpm.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:43)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155)
at org.jbpm.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:35)
at org.jbpm.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:222)
at org.jbpm.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:358)
at org.jbpm.process.instance.ProcessRuntimeImpl.startProcessInstance(ProcessRuntimeImpl.java:189)
at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:171)
at org.jbpm.process.instance.ProcessRuntimeImpl.startProcess(ProcessRuntimeImpl.java:163)
at org.drools.core.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1576)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:361)
at com.sample.ProcessMain.main(ProcessMain.java:41)
Caused by: org.drools.core.WorkItemHandlerNotFoundException: Could not find work item handler for Human Task
at org.drools.core.process.instance.impl.DefaultWorkItemManager.internalExecuteWorkItem(DefaultWorkItemManager.java:71)
at org.jbpm.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:124)
at org.jbpm.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:155)



My code:

               KieBase kbase = kContainer.getKieBase("kbase");
SimpleRegisterableItemsFactory factory = new SimpleRegisterableItemsFactory();
factory.addWorkItemHandler("CustomWorkItemHandler1", CustomWorkItemHandler1.class);
RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get().newEmptyBuilder()
         .persistence(false).knowledgeBase(kbase)
         .registerableItemsFactory(factory);
 
RuntimeManager mgr =  RuntimeManagerFactory.Factory.get()
         .newPerRequestRuntimeManager(builder.get(),
         "com.sample:example:1.0");
RuntimeEngine eng = mgr.getRuntimeEngine(EmptyContext.get());
KieSession ksess = eng.getKieSession();

// custom workitem class

public class CustomWorkItemHandler1 implements WorkItemHandler {

public void abortWorkItem(WorkItem wi, WorkItemManager wim) {
System.out.println("Custom Work Item Handler Abort Work Item Method.....! ");

}

public void executeWorkItem(WorkItem wi, WorkItemManager wim) {
System.out.println("Custom Work Item Handler Execute Work Item Method.....! ");
wim.completeWorkItem(wi.getId(), null);
}

}

//

kmodule.xml :


  <kbase name="kbase" packages="com.sample">
  
  <ksession name="ksession"  default="true" clockType="realtime">
      <workItemHandlers>
        <workItemHandler type="com.sample.CustomWorkItemHandler1" name="CustomWorkItemHandler1" />
        
      </workItemHandlers>
      </ksession>
</kbase>
</kmodule>

//

And I have the task name as "CustomWorkItemHandler1" for the user task in the flow.

Could someone please help

Thanks!



Maciej Swiderski

no leída,
22 jul 2017, 6:54:3222/7/17
a Vnay kndl,jBPM Usage
This complains about missing work item handler for human task. Seems you have user task in your process so make sure you have handler for it registered as well

Maciej 
--
You received this message because you are subscribed to the Google Groups "jBPM Usage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jbpm-usage+...@googlegroups.com.
To post to this group, send email to jbpm-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jbpm-usage/0953edd5-bbda-417f-90a9-60d479b8f988%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Vnay kndl

no leída,
22 jul 2017, 7:05:3522/7/17
a jBPM Usage,aug....@gmail.com
Hi Maciej,

After I have registered handler.. I'm getting below error while i'm trying to retrieve getTasksAssignedAsPotentialOwner method..


Exception in thread "main" java.lang.NullPointerException
at org.jbpm.runtime.manager.impl.task.SynchronizedTaskService.getTasksAssignedAsPotentialOwner(SynchronizedTaskService.java:328)



Thanks!

Vnay kndl

no leída,
22 jul 2017, 8:12:3822/7/17
a jBPM Usage,aug....@gmail.com
Hi Maciej,

I'm getting taskservice as null from runtime engine....

KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase("kbase");
SimpleRegisterableItemsFactory factory = new SimpleRegisterableItemsFactory();
    factory.addWorkItemHandler("Human Task", CustomWorkItemHandler1.class);
RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get()
.newEmptyBuilder().persistence(false).knowledgeBase(kbase).registerableItemsFactory(factory);
RuntimeManager manager = RuntimeManagerFactory.Factory.get()
.newPerRequestRuntimeManager(builder.get(), "com.sample:example:1.0");
RuntimeEngine engine = manager.getRuntimeEngine(null);
KieSession ksession = engine.getKieSession();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new CustomWorkItemHandler1());
TaskService taskService = engine.getTaskService();

//  getting taskService null and because of that while invoking getTasksAssignedAsPotentialOwner ..getting the error that mentioned earlier..

Could you please look at this 

Thanks!

Maciej Swiderski

no leída,
23 jul 2017, 11:30:1023/7/17
a Vnay kndl,jBPM Usage
You can't run task service without persistence

Since you use custom handler for human task work item then task service from runtime engine is useless. 

Maciej 
Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos