我尝试在Drools框架上取得一些经验。在测试期间,我尝试以下测试

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


为什么此测试失败?会话在创建时是否引用了KnowledgeBase是不正确的?我对此有些困惑。也许有人可以帮助我理解它。

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

最佳答案

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

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

10-13 08:43