java - 流口水为什么 StatefulKnowledgeSession 有不同的知识库

标签 java jboss drools rule-engine drools-fusion

我正在尝试使用 Drools 框架积累一些经验。在测试期间我尝试以下测试

    @Test public void testDrools() {
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
        assertSame(session.getKnowledgeBase(), kbase);
    }

为什么这个测试失败? session 是否具有对用于其创建的KnowledgeBase 的引用?我对此有点困惑。也许有人可以帮助我理解它。

提前非常感谢您。 阿尔贝托

最佳答案

这是一个实现细节,主要是因为 Drools 必须保持与 Drools 4.x 版本的向后兼容性。 kbase 和 session.getKnowledgeBase() 都是真实知识库的包装器,因此您有 2 个包装器,但两个包装器都指向知识库的一个实际实例。

关于java - 流口水为什么 StatefulKnowledgeSession 有不同的知识库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297221/

相关文章:

java -/tmp 的最佳 Windows 等价物是什么?

java - 无限循环的线程在捕获一些异常后停止

linux - 如何从命令行查看 JBOSS 已启动/停止

java - 从 drools 5 (5.5.0.Final) 到 drools 6 的升级过程

java - 如何在 Eclipse IDE 中调试 Drools 文件 (.drl)

java - 在 Spring Data JPA 中的 native 查询之间共享 SQL

java - base64 到十六进制不一致的结果

java - 无法导入 org.hibernate.session

web-services - SOAP 和 REST Web 服务在 Java EE 中具有一种实现

jboss - 获取错误命名查询未找到 : UnescalatedDeadlines