2017-01-31 9 views
0
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()); 

Мы создали таблицу управляемых решений на стороне двигателя слюни. Я вызываю таблицу решений (gdst) из java-кода. Выше код выполняется без каких-либо ошибок, но он не обновляет данные в mObj. Drool возвращает тот же объект, что и мы.Как назвать таблицу управляемых решений из java?

+0

Если ваши правила не изменяют вставленный 'MyDataObject', это не изменится. Если у вас есть правила, изменяющие «MyDataObject», они не запускаются. - Что такое код конструктора 'MyDataObject' и каков код правил, которые должны запускать и изменять такой объект? – laune

+0

Управляемое правило обновляет объект, но если я создаю таблицу решений (gdst), она не обновляет объект. Я создал конструктор по умолчанию. Можете ли вы поделиться примером кода для вызова таблицы решений слюни (gdst) из java. – Saurabh

ответ

0

kSession.fireAllRules() метод обратного междунар, то есть ряд правил, выполняемых. Чтобы подтвердить, выполняется ли правило или нет, вы можете распечатать значение «int» после выполнения метода fireallrule.

0

Выше код, заданный в вопросе, работает нормально, просто нужно обновить зависимости 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>