Drools 从无状态知识会话迁移到无状态知识会话

Drools 从无状态知识会话迁移到无状态知识会话,drools,kie,Drools,Kie,我希望在Drools 6上从旧的知识Api迁移到Kie Api,并停止使用过时的类。在当前代码中,我们将POJO用于DroolFact,并将其传递给会话。执行进行处理 由于这是较旧的5.x代码,因此它使用了无状态KnowledgeSession;我试着用KieSession替换。但是,较新的KieSession没有将对象作为execute()方法的参数,而是将命令作为参数 看看Drools 6的例子,facts类仍然是一个简单的POJO,它没有实现任何特定的接口。不过,我看到的示例也使用了fir

我希望在Drools 6上从旧的知识Api迁移到Kie Api,并停止使用过时的类。在当前代码中,我们将POJO用于DroolFact,并将其传递给
会话。执行
进行处理

由于这是较旧的5.x代码,因此它使用了
无状态KnowledgeSession
;我试着用
KieSession
替换。但是,较新的
KieSession
没有将对象作为
execute()
方法的参数,而是将
命令作为参数

看看Drools 6的例子,facts类仍然是一个简单的POJO,它没有实现任何特定的接口。不过,我看到的示例也使用了
fireAllRules()
,而不是execute。在这种情况下,我应该如何更新现有代码以使用Kie Api


编辑:我刚刚在发布后发现,
KieSession
确实有相同的方法,我使用的是base
KieSession
类。因此,这解决了我的编译错误,但我将把这个问题留给您,以防有任何其他升级问题需要注意。

您不打算Drools 7有什么原因吗?我将数百万条规则从5.0.1迁移到7.12,这是完全可以做到的。“command”很简单,就像:
cmds.add(kiecords.newInsert(newperson(“jon”,102)),这样您就可以将对象放入工作内存。这是针对Drools 7的,我只是在使用6库时迁移代码,因为它仍然包含不推荐使用的类。这很有意义。特别是我的代码使用了有状态会话,因此这是一个非常轻松的迁移,但命令只是insert语句的包装器,因此应该同样简单。