我是JBPM6的新手.我的场景是这样的,我想使用JBPM服务任务执行一些
Java代码.从文档中我无法理解如何在这种类型的代码中使用特定于域的进程和工作项处理程序.
如果有人有示例,请分享.这将非常有帮助.
如果有人有示例,请分享.这将非常有帮助.
先感谢您.
解决方法
以下是如何在
Eclipse maven项目中添加处理程序.我称之为Awesome处理程序,但您应该选择一个更具体的名称.
1)首先在src / main / resources / WorkItemDefinitions.wid中创建工作项定义文件.我的图标文件位于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)在src / main / resources / Meta-INF / CustomWorkItemHandlers.conf中创建工作项处理程序配置文件
[ "Awesome": new org.jbpm.examples.util.handler.AwesomeHandler() ]
3)创建一个drools会话配置文件:src / main / resources / Meta-INF / drools.session.conf
drools.workItemHandlers = CustomWorkItemHandlers.conf
4)创建您的处理程序,使其与您在步骤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)建立处理程序后,必须在会话中注册它.
//Get session KieSession ksession = runtime.getKieSession(); //Register handlers ksession.getWorkItemManager().registerWorkItemHandler("Awesome",new AwesomeHandler());
此时你应该重启eclipse.当eclipse打开时,调色板中应该有一个“自定义任务”选项卡.它应包含带有指定图标的标记为“Awesome”的条目.