[英]How to Call guided decision table from java?
KieServices ks = KieServices.Factory.get();
KieResources resources = ks.getResources();
String url = messageSource.getMessage("merchant.drool.engine.url", null, Locale.US);
UrlResource urlResource = (UrlResource) resources.newUrlResource(url);
urlResource.setUsername(messageSource.getMessage("merchant.drool.engin.username", null, Locale.US));
urlResource.setPassword(messageSource.getMessage("merchant.drool.engin.password", null, Locale.US));
urlResource.setBasicAuthentication(messageSource.getMessage("merchant.drool.engin.basicauth", null, Locale.US));
logger.info("DTR BATCH: Downloading... kie jar started.");
InputStream stream = urlResource.getInputStream();
KieRepository repo = ks.getRepository();
KieModule k = repo.addKieModule(resources.newInputStreamResource(stream));
KieContainer kieContainer = ks.newKieContainer(k.getReleaseId());
KieScanner kieScanner = ks.newKieScanner(kieContainer);
kieScanner.start(5000L);
KieSession kSession = kieKontainer.newKieSession();
MyDataObject mObj = new MyDataObject();
kSession.insert(mObj);
System.out.println("Fired rules: " + kSession.fireAllRules());
我们在流口水引擎侧创建了一个指导性决策表。 我正在从Java代码调用决策表(gdst)。 上面的代码正在执行,没有任何错误,但是并没有更新mObj中的数据。 Drool正在返回我们传递的同一对象。
在此链接中,[1]显示了如何从GDST构建KieBase
。 然后,您仅是获得KieSession
第一步,例如:
kieBase.newKiewSession();
kSession.fireAllRules()方法返回int,即执行的规则数。 要确认是否执行了规则,可以在执行fireallrule方法后打印“ int”值。
以上问题中的代码工作正常,只需要更新maven依赖项即可。
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-ci</artifactId>
<version>6.5.0.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-workbench-models-guided-dtable</artifactId>
<version>6.5.0.Final</version>
</dependency>
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>6.5.0.Final</version>
</dependency>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.