Как исправить ошибку 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" />
Обратитесь к примеру.