drools+jbpm+guvnor三者交互Word下载.docx
《drools+jbpm+guvnor三者交互Word下载.docx》由会员分享,可在线阅读,更多相关《drools+jbpm+guvnor三者交互Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
![drools+jbpm+guvnor三者交互Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/26/75eaa1d0-9a50-4f0f-93da-0d2315b9feab/75eaa1d0-9a50-4f0f-93da-0d2315b9feab1.gif)
找到新建的工程“drools1”,打开目录src/main/rules,打开Sample.drl,
Sample.drl文件内容如下:
右键点击Sample.drl,点击“Guvnor”—“Add”,窗体如下:
点击“Next”,选择窗体中的树状菜单下的Packages下的包,如下图:
点击“Finish”,完成发布。
3.查看发的drl文件
打开http:
//localhost:
8080/drools-guvnor,在刷新该页面,显示如下
点击树状菜单下的“知识库”—“包”—“defaultPackage”,如下图:
打开“Sample”,如下图:
二、Gunvor和Drools交互
1.打开Gunvor页面
2.创建规则文件
点击树状菜单下的“知识库”—“新建”—“新建规则”,规则命名为firsh,弹出窗体,如下图:
点击“OK”,编辑好的firsh规则如下:
点击“文件”—“保存并关闭”。
3.将Guvnor生成的规则文件显示到myeclipse中
打开工程“drools1”,右键点击src/main/rules目录,点击“Import”,点击窗体中的树状菜单“Guvnor”—“ResourcesfromGuvnor”,如下图:
点击“Next”,如下图:
选择firsh.drl,点击“Next”,选择放置的位置,如下图:
点击“Finish”完成。
内容如下:
修改成如下:
三、Drools与jbpm
准备jbpm工程:
实例\工作流+规则\hello-world
1.工作流程
将工程导入到myEclipse中,打开工程“hello-world”,打开目录src/main/resources,打开sample_drl.bpmn文件,如下图:
点击“VerificaDati”控件,找到他的属下窗口,将属性“RuleFlowGroup”的值设置为“verifica_dati”,如下图:
在和simple_drl.bpmn同一个目录下找到my_rules.drl规则文件,打开规则文件,规则文件内容显示如下:
my_rules.drl中ruleflow-group名与sample_drl.bpmn设置的属下名一致。
执行该规则流代码如下:
packagecom.sample;
importjava.util.HashMap;
importjava.util.Map;
importorg.drools.KnowledgeBase;
importorg.drools.builder.KnowledgeBuilder;
importorg.drools.builder.KnowledgeBuilderFactory;
importorg.drools.builder.ResourceType;
importpiler.BPMN2ProcessFactory;
importpiler.ProcessBuilderFactory;
importorg.drools.io.ResourceFactory;
importorg.drools.logger.KnowledgeRuntimeLogger;
importorg.drools.logger.KnowledgeRuntimeLoggerFactory;
importorg.drools.marshalling.impl.ProcessMarshallerFactory;
importorg.drools.runtime.StatefulKnowledgeSession;
importorg.drools.runtime.process.ProcessRuntimeFactory;
importorg.jbpm.bpmn2.BPMN2ProcessProviderImpl;
importorg.jbpm.marshalling.impl.ProcessMarshallerFactoryServiceImpl;
importorg.jbpm.process.builder.ProcessBuilderFactoryServiceImpl;
importorg.jbpm.process.instance.ProcessRuntimeFactoryServiceImpl;
/**
*Thisisasamplefiletolaunchaprocess.
*/
publicclassExampleDrools{
publicstaticfinalvoidmain(String[]args){
try{
KnowledgeBasekbase=readKnowledgeBase();
StatefulKnowledgeSessionksession=kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLoggerlogger=KnowledgeRuntimeLoggerFactory.newFileLogger(ksession,"
test"
);
Useruser=newUser();
user.setUsern("
rosa"
user.setPwd("
123456"
Map<
String,Object>
params=newHashMap<
();
params.put("
username"
user.getUsern());
password"
user.getPwd());
ksession.startProcess("
com.sample.bpmn.hello"
params);
ksession.insert(user);
ksession.fireAllRules();
logger.close();
ksession.dispose();
}catch(Throwablet){
t.printStackTrace();
}
}
privatestaticKnowledgeBasereadKnowledgeBase()throwsException{
ProcessBuilderFactory.setProcessBuilderFactoryService(newProcessBuilderFactoryServiceImpl());
ProcessMarshallerFactory.setProcessMarshallerFactoryService(newProcessMarshallerFactoryServiceImpl());
ProcessRuntimeFactory.setProcessRuntimeFactoryService(newProcessRuntimeFactoryServiceImpl());
BPMN2ProcessFactory.setBPMN2ProcessProvider(newBPMN2ProcessProviderImpl());
KnowledgeBuilderkbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("
sample_drl.bpmn"
),ResourceType.BPMN2);
my_rules.drl"
),ResourceType.DRL);
returnkbuilder.newKnowledgeBase();
}
仔细过程请看hello-world工程。
四、Jbpm和gunvor交互
同第一大点drools和gunvor,在此不做仔细说明。
五、Gunvor和jbpm交互
同第二大点gunvor和drools,在此不做仔细说明。