Я пытаюсь загрузить файл правил слюни из базы данных. Как я могу активировать это правило?
kbuilder.add(
ResourceFactory.newClassPathResource("myrule.drl"),
ResourceType.DRL
);
Я пытаюсь загрузить файл правил слюни из базы данных. Как я могу активировать это правило?
kbuilder.add(
ResourceFactory.newClassPathResource("myrule.drl"),
ResourceType.DRL
);
Предоставьте содержимое правила из БД (jdbc и т. Д.) И сохраните его в переменной. Затем использовали его (до того, как ки пускали слюни) в kbuilder.
String ruleContent; // fill this from DB in diffrent method/aspect
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
Resource r = ResourceFactory.newReaderResource((Reader) new StringReader(ruleContent));
kbuilder.add(dsl, ResourceType.DRL);
if (kbuilder.hasErrors()) {
log.error(kbuilder.getErrors().toString());
}
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
// prepare fact object
ksession.insert(factObject);
ksession().fireAllRules()
newClassPathResource
в этом случае может не соответствовать вашему счету. Лучше я попробую загрузить правила с помощьюnewInputStreamResource
илиnewReaderResource
. P.S. Вам нужно будет предоставить немного больше информации о вашей точной проблеме. - person kaskelotti   schedule 15.06.2015