Question

The following line of code straight from the documentation

ksession.addEventListener(new DebugWorkingMemoryEventListener());

prompts the following error in eclipse

The method addEventListener(WorkingMemoryEventListener) in the type WorkingMemoryEventManager is not applicable for the arguments (DebugWorkingMemoryEventListener)

Was it helpful?

Solution

You probably import org.drools.event.DebugWorkingMemoryEventListener instead of org.drools.event.rule.DebugWorkingMemoryEventListener.

In our case, the following code works just fine:

import org.drools.event.rule.DebugWorkingMemoryEventListener;
import org.drools.event.rule.ObjectInsertedEvent;
import org.drools.event.rule.ObjectRetractedEvent;
import org.drools.event.rule.ObjectUpdatedEvent;
...
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
ksession.addEventListener(new DebugWorkingMemoryEventListener() {
    @Override
    public void objectInserted(ObjectInsertedEvent event) {
        System.out.println(event);
    }

    @Override
    public void objectRetracted(ObjectRetractedEvent event) {
        System.out.println(event);
    }

    @Override
    public void objectUpdated(ObjectUpdatedEvent event) {
        System.out.println(event);
    }
});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top