JBPM6 Service task to execute java code

前端 未结 3 1975
猫巷女王i
猫巷女王i 2020-12-10 16:35

I am new in JBPM6. My scenario is like this that i want to execute some java code using JBPM service task.From documentation i am not able to understand how to use domain sp

3条回答
  •  臣服心动
    2020-12-10 17:10

    Here is how to add a handler inside a Eclipse maven project. I call it the Awesome handler, but your should pick a more specific name.

    1) First create a work item definition file in src/main/resources/WorkItemDefinitions.wid. My icon file is located in src/main/resources.

    import org.drools.core.process.core.datatype.impl.type.StringDataType;
    
    [
      [
        "name" : "Awesome",
        "parameters" : [
          "Message1" : new StringDataType(),
           "Message2" : new StringDataType()
         ],
        "displayName" : "Awesome",
        "icon" : "icon-info.gif"
      ]
    ]
    

    2) Create a Work Item Handler Config file in src/main/resources/META-INF/CustomWorkItemHandlers.conf

    [
      "Awesome": new org.jbpm.examples.util.handler.AwesomeHandler()
    ]
    

    3) Create a drools session config file: src/main/resources/META-INF/drools.session.conf

    drools.workItemHandlers = CustomWorkItemHandlers.conf
    

    4) Create your Handler so that it matches the class you defined in step 2

    public class AwesomeHandler implements WorkItemHandler {
    
        public AwesomeHandler() {
            super();
        }
    
        public void executeWorkItem(WorkItem workItem, WorkItemManager manager) {
            System.out.println("Executing Awesome handler");
            manager.completeWorkItem(workItem.getId(), null);
        }
    
        public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
            System.out.println("Aborting");
        }
    }
    

    5) After you establish the handler, you must register it with your session.

    //Get session
    KieSession ksession = runtime.getKieSession();
    
    //Register handlers
    ksession.getWorkItemManager().registerWorkItemHandler("Awesome", new AwesomeHandler());
    

    At this point you should restart eclipse. When eclipse opens, there should be a 'Custom Tasks' tab in the palette. It should contain an entry labeled 'Awesome' with the specified icon.

提交回复
热议问题