Dynamic 在drools引擎中动态添加规则

Dynamic 在drools引擎中动态添加规则,dynamic,jboss,drools,Dynamic,Jboss,Drools,我有一个独立的java应用程序,它将与运行在节点上的web应用程序交互。我试图通过web UI动态添加新规则。到目前为止,我还不知道如何创建和添加规则。任何关于正确方向的建议都会很有帮助这基本上是我对这个问题的答案的重复 最好只看Drools示例源代码。例如,演示了如何从字符串创建规则并启动包含该规则的会话 要点是创建一个包含虚拟文件系统的KieServices。然后将规则添加到该文件系统。有点像下面这样: KieServices-ks=KieServices.Factory.get(); Ki

我有一个独立的java应用程序,它将与运行在节点上的web应用程序交互。我试图通过web UI动态添加新规则。到目前为止,我还不知道如何创建和添加规则。任何关于正确方向的建议都会很有帮助

这基本上是我对这个问题的答案的重复

最好只看Drools示例源代码。例如,演示了如何从字符串创建规则并启动包含该规则的会话

要点是创建一个包含虚拟文件系统的
KieServices
。然后将规则添加到该文件系统。有点像下面这样:

KieServices-ks=KieServices.Factory.get();
KieRepository kr=ks.getRepository();
KieFileSystem kfs=ks.newKieFileSystem();
write(“src/main/resources/my/rules/therule.drl”,“规则的源代码”);
KieBuilder kb=ks.newKieBuilder(kfs);
kb.buildAll();
you can add multiple Compiled rule DRL files like 
knowledgebuilder.add(new ByteArrayResource(compiledDRL.getBytes()),ResourceType.DRL);


Get all the knowledgePackages and fire the all rules 

knowledgeBase kbase = knowledgeBaseFactory.newKnowledgeBase();
kbase.addknowledgePackages(knowledgeBuilder.getKnowledgePackages());

knowledgeSession ksession = kbase.newStatefullKnowledgeSession();
ksession.insert(inputObject);
ksession.fireAllRules();
ksession.dispose();