0
我開始在Scala中使用Drools,執行http://www.gettingcirrius.com/2010/12/using-jboss-rules-drools-in-scala.html這個例子。但是,代碼運行時沒有錯誤,但規則不起作用。輸出是:scala:規則不能在drools中執行
Creating Knowledge Session
Creating and insertng Temperature
Firing all rules
我發現有一個解決方案在這裏Help Drools integration with Scala和修訂後的Scala代碼被公佈在github上https://github.com/mariofusco/scaladrools。然而,即使我複製了這個項目,規則仍然不起作用,這讓我很困惑。
然後,我印刷一些錯誤:
Unable to Analyse Expression System.out.println(
temp.value.toString + " F is too hot."
+ " Declare HEAT WARNING!");:
[Error: unable to resolve method using strict-mode: int.toString()]
[Near : {... temp.value.toString + " F is too hot." ....}]
^
[Line: 13, Column: 0]
Unable to Analyse Expression System.out.println(
temp.value.toString + " F is too cold."
+ " Declare FREEZE WARNING!");:
[Error: unable to resolve method using strict-mode: int.toString()]
[Near : {... temp.value.toString + " F is too cold." ....}]
^
[Line: 23, Column: 0]
看來,在DRL文件中的toString
方法是主要的問題。所以我刪除了drl中的.toString
,一切正常。我使用的drool軟件包版本是6.0.1.Final,當我將它改爲5.4.0.Final時,它不會改變任何東西。這些問題讓我發瘋。誰能幫我?非常感謝!
你有沒有試過'System.setProperty( 「drools.dialect.mvel.strict」, 「假」);'? – chemikadze
是的,問題解決了!非常感謝,@chemikadze! –
@chemikadze請發表您的評論作爲答案,以便它可以被接受:-)。 – gourlaysama