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正在返回我们传递的同一个对象。
答案 0 :(得分:0)
在此链接[1]中显示了如何从GDST构建KieBase
。然后你只需要获得KieSession
之后的一步:
kieBase.newKiewSession();
答案 1 :(得分:0)
kSession.fireAllRules()方法返回int,即执行的规则数。要确认是否执行了规则,您可以打印' int'执行fireallrule方法后的值。
答案 2 :(得分:0)
上面提到的问题代码工作正常,只需要更新maven依赖项。
var quotes = a["Quotes"];
quotes.sort(function(a, b) {
return a.MinPrice - b.MinPrice;
});
console.log(JSON.stringify(quotes));