1 2 Previous Next 17 Replies Latest reply on Dec 5, 2015 3:30 PM by Neeraj P

    jBPM Console Server can't find WorkItem Handler Implementation

    José Tomás Tocino Newbie

      Hi there.


      I'm having a problem trying to run a process that has a Work Item. The server can't find the implementation for the Work Item Handler. These are the steps I follow.


      First I create the work item in drools-guvnor, it is called 'Activo1', and it's defined as follows:


      import org.drools.process.core.datatype.impl.type.ObjectDataType;

      import org.drools.process.core.datatype.impl.type.StringDataType;




          "name" : "Activo1",

          "parameters" : [

                    "MyFirstParam" : new StringDataType(),


          "results" : [

              "Result" : new StringDataType()


          "displayName" : "My Task",

          "icon" : "",





      Then, I create a simple process with a start event, the work item, and the end event. I build a snapshot of the package and the process appears in the list of available processes in the jbpm-console.


      Next, I edit the conf/META-INF/CustomWorkItemHandlers.conf so it looks like this:


        "Log": new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler(),

        "Activo1": new defaultPackage.Activo1()



      I use ant stop.demo, and then ant start.demo, then I check in the console server war that the CustomWorkItemHandlers file is properly updated. So far it's ok.


      For the implementation, I created a folder called 'defaultPackage' and, inside, I create an Activo1.java file with the following contents:


      package defaultPackage;


      import org.drools.runtime.process.*;


      public class Activo1 implements WorkItemHandler{


          public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {

              System.out.println("GOOD BYE WORLD");

              manager.completeWorkItem(workItem.getId(), null);



          public void abortWorkItem (WorkItem workItem, WorkItemManager manager) {

              // Nothing




      In order to compile it, I use

      javac -cp "runtime/lib/*" defaultPackage/Activo1.java


      And in order to create the JAR file I use this:

      jar cfe Activo1.jar defaultPackage.Activo1 defaultPackage


      The previous two commands may be the part that's wrong, because I'm an absolute java noob.


      I copy the JAR file in all the 'lib' folders I come across, namely $installer/lib, $installer/runtime/lib and $installer/jboss[...]/standalone/lib.


      When I launch the process in the jbpm console, I get the following error in the SERVER.LOG file:

      Could not commit session: org.jbpm.workflow.instance.WorkflowRuntimeException: [defaultPackage.Proceso1:4 - My Task:2] -- Could not find work item handler for Activo1


      HOWEVER, If I change the CustomWorkItemHandlers.conf file so it looks like this:


        "Log": new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler(),

        "Activo1": new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler()



      and then I launch the process, the default SystemOut work item handler works OK and I get the following in the LOG file:

      [stdout] (http-localhost- Executing work item WorkItem 5 [name=Activo1, state=0, processInstanceId=5, parameters{TaskName=Activo1}]


      So the work item definition and the model definition seem to be OK. The problem seems to be in the place or the way the JAR was generated.


      Please help!

        1 2 Previous Next