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は私たちが渡しているのと同じオブジェクトを返しています。Javaからガイド付きデシジョンテーブルを呼び出す方法は?
ルールが挿入された「MyDataObject」を変更しない場合、変更されません。 MyDataObjectを変更するルールがある場合、それらは起動されません。 - 'MyDataObject'のコンストラクタコードとは何ですか?また、そのオブジェクトを起動して変更するはずのルールのコードは何ですか? – laune
ガイド付きルールはオブジェクトを更新していますが、デシジョン・テーブル(gdst)を作成するとオブジェクトを更新しません。私はデフォルトコンストラクタを作った。 javaからの落ち着き判定テーブル(gdst)を呼び出すためのサンプルコードを共有できますか? – Saurabh