Как исправить ошибку Drools с помощью Eclipse?

В моем Java-коде я написал:

KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
config.setOption(EventProcessingMode.STREAM);

И метод setOption, Eclipse, выдает следующую ошибку:

Несоответствие границ: универсальный метод setOption(T) типа KnowledgeBaseOptionsConfiguration не применим для аргументов (RuleBaseConfiguration.EventProcessingMode). Предполагаемый тип RuleBaseConfiguration.EventProcessingMode не является допустимой заменой ограниченного параметра

2 ответа

Согласно некоторым 5.x Javadoc:

 config.setOption(EventProcessingOption.STREAM);

Где ...Mode... приходящий из?

Вы должны использовать EventProcessingOption вместо EventProcessingMode в вашем коде Java, как указано в учебнике:

KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
config.setOption(EventProcessingOption.STREAM);

EventProcessingMode используется в конфигурации drools в xml. т.е.

<drools:kbase id="kbase">
  <drools:resources>
    <drools:resource  type="DRL" source="classpath:drools/rules.drl" />
  </drools:resources>
  <drools:configuration>
    <drools:mbeans enabled="true" />
    <drools:event-processing-mode mode="STREAM" />
    <drools:assert-behavior mode="EQUALITY" />
  </drools:configuration>
</drools:kbase>
<drools:ksession id="ksession" type="stateful" name="ksession" kbase="kbase" />

Обратитесь к примеру.

Другие вопросы по тегам