在 KieBase 中 adding/deleting 规则后重新加载 KieSession
Reloading KieSession after adding/deleting Rules in KieBase
我试图在从 KieBase 中删除规则后重新创建 KieSession,但删除的规则仍在触发。
我创建了一个 KieBase 并使用以下代码删除了一条规则:
KieServices service = KieServices.Factory.get();
KieFileSystem fileSystem = service.newKieFileSystem();
KieBuilder builder = service.newKieBuilder(fileSystem);
ReleaseId releaseId1 = service.getRepository().getDefaultReleaseId();
KieContainer kContainer = service.newKieContainer(releaseId1);
KieSession ksession = kContainer.newKieSession(sessionConfig);
KieBaseConfiguration config = service.newKieBaseConfiguration();
KieBase base = kContainer.newKieBase(config);
base.removeRule("com.somepackage", "rule1");
KieSession ksession1 = kContainer.newKieSession(sessionConfig);
但是当我根据 ksession1 评估事实时,规则 1 仍在触发。如何将编辑后的 KieBase 重新加载到新会话中?
您可以从修改后的 KieBase 创建会话:
KieSession ksession1 = base.newKieSession();
我试图在从 KieBase 中删除规则后重新创建 KieSession,但删除的规则仍在触发。
我创建了一个 KieBase 并使用以下代码删除了一条规则:
KieServices service = KieServices.Factory.get();
KieFileSystem fileSystem = service.newKieFileSystem();
KieBuilder builder = service.newKieBuilder(fileSystem);
ReleaseId releaseId1 = service.getRepository().getDefaultReleaseId();
KieContainer kContainer = service.newKieContainer(releaseId1);
KieSession ksession = kContainer.newKieSession(sessionConfig);
KieBaseConfiguration config = service.newKieBaseConfiguration();
KieBase base = kContainer.newKieBase(config);
base.removeRule("com.somepackage", "rule1");
KieSession ksession1 = kContainer.newKieSession(sessionConfig);
但是当我根据 ksession1 评估事实时,规则 1 仍在触发。如何将编辑后的 KieBase 重新加载到新会话中?
您可以从修改后的 KieBase 创建会话:
KieSession ksession1 = base.newKieSession();