我使用Drools开发Web应用程序。我的所有drools文件都存储在数据库中。修改一些规则后,我必须创建新的知识库并添加我从规则创建的包。我如何只更新我需要的知识库中的那些包,因为重新生成所有知识库非常昂贵的时间;例如,我做了下一步;
用户编辑规则并按下应用按钮。 之后我做了一些事情:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add(ResourceFactory.newReaderResource(Reader,getClass()),ResourceType.DRL); KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
我存储规则脚本如何在数据库中使用文本并使用Reader在KnowledgeBuilder中添加包。我从这里获取规则数据库格式 http://docs.codehaus.org/display/DROOLS/Loading+and+managing+rules+dynamically+from+a+database
我尝试从知识库中删除名称并再次添加但未成功。更新我的知识库需要做些什么。每次用户编辑和保存规则时我都无法创建新的知识库,我必须做一些操作来更新知识库的某些部分,让我这样说吧。
请帮助。
答案 0 :(得分:0)
您是否在drools文档中阅读了KnowledgeAgent?该组件包含将新更改合并到现有知识库的逻辑,据我所知。 干杯
答案 1 :(得分:0)
我读了一下KnowledgeAgent只能使用changeset.xml配置和在changeset.xml中定义的扫描resurce