2014-05-05 21 views
0

在我的Java代碼中,我寫道:如何使用Eclipse修復Drools的錯誤?

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

而且的SetOption方法時,Eclipse引發以下錯誤:

約束不匹配:類型KnowledgeBaseOptionsConfiguration的一般方法的SetOption(T)是不適用爲參數(RuleBaseConfiguration.EventProcessingMode)。推斷類型RuleBaseConfiguration.EventProcessingMode不是爲界參數<噸有效替代延伸KnowledgeBaseOption>

回答

1

據一些5.x中的Javadoc:

config.setOption(EventProcessingOption.STREAM); 

...Mode...來自哪裏?

+0

寫** config.setOption(EventProcessingMode.STREAM); ** Eclipse拋出同樣的錯誤,我不知道要做什麼... –

+0

它應該是EventProcessing'Option'.STREAM,如果你真的改變了,錯誤信息不能相同。 Drools版本?請發佈完整的代碼來重現問題 - 不應該超過15行......而且Drools的Eclipse設置是否正確? – laune

+0

laune謝謝你的回答。我的Drools版本是** drools-distribution-6.0.1.Final **。 Drools的Eclipse設置是正確的,因爲我寫了一些規則和java代碼沒有任何問題 –

1

tutorial給出你應該在你的java代碼中使用EventProcessingOption代替EventProcessingMode

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" /> 

請參閱example