当前位置: 首页 > 知识库问答 >
问题:

在KieBase中添加/删除规则后重新加载KieSession

呼延卓
2023-03-14

我尝试在从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);

但是当我根据ksesion1评估一个事实时,rule1仍然在触发。如何将编辑后的KieBase重新加载到新会话中?

共有1个答案

司马作人
2023-03-14

您可以从修改后的KieBase创建会话:

 KieSession ksession1 = base.newKieSession();
 类似资料:
  • 问题内容: 我正在尝试转学;为此,我想删除神经网络的最后两层并添加另外两层。这是一个示例代码,它也会输出相同的错误。 我使用删除了该图层,但是当我尝试添加其输出时出现此错误 AttributeError:“模型”对象没有属性“添加” 我知道该错误的最可能原因是不当使用。我应该使用其他什么语法? 编辑: 我试图在keras中删除/添加图层,但不允许在加载外部重物后添加它。 它显示此错误 问题答案:

  • 我正在尝试将规则添加到已经使用KieBuilder定义和构建的KiePackage。 我知道您可以使用以下方式删除规则: 但是否有一个添加规则的等价物?我尝试添加一个新的。将drl文件导入KieFileSystem,并使用KieScanner获取更改,但它似乎不起作用: 当我评估一个事实与ksesion1时,新规则不存在于KieBase中。我错过了什么吗?

  • 有没有什么方法可以动态编辑加载到Drools中的规则,而不需要重新加载新的DRL文件? 我们试图使用Drools作为规则引擎,但在我们的用例中,规则的添加和删除非常频繁,我们希望避免每次发生这种情况时都必须重新加载整个.drl文件。

  • 问题内容: 我正在尝试将tinyMCE编辑器添加到我的页面,将其删除,然后再次添加,但出现错误。 当我运行A部分,然后运行B部分,而不是运行A部分时,出现错误: 甲部 B部分 编辑: 上面是创建JavaScript的后端分支,下面是完整的JavaScript函数。第一次通过它打开对话框并工作,其内容在编辑器中,没有错误。当我单击关闭按钮时,对话框关闭。当我再次运行该函数时,将显示对话框,但编辑器为

  • 我在我的应用程序中使用了camunda DMN(在Angulation、java、spring中)。 我想验证规则是否没有重叠,同时添加新的规则到DMN表。 如果我使用唯一命中策略,它不会在添加新规则时显示错误,而是在计算DMN表时显示错误。我不想那样:( 如何在使用camunda dmn js api或camunda dmn java api创建规则时避免规则重叠?

  • 我正在使用Flink Kafka在流上应用规则。以下是示例代码: 但问题是,当我们启动程序时,FlinkKafka只读取文件一次,我希望新规则在运行时动态添加并应用于流。 在《Flink·Kafka》中,我们有没有办法实现这一点?