2014-09-22 93 views
0

「在輸入N無可行的選擇」我有下面的類和「不匹配輸入」

public class DroolsObjectRule { 

    private String backend; 
    private Long time; 
    private Long avgTime; 
    private boolean allow=true; 
    private String message; 

    //Set 

    //Get 
} 

我的規則

rule "rule_3_increment_more" 
    salience 3 
    when 
    $drol: DroolsObjectRule(backend == "AD1" && (2 * $drol.avgTime) > $drol.time) [this is line 33] 
    then 
    $drol.setMessage("RULE 3"); 
end 

當我運行代碼,我得到以下錯誤

Caused by: java.lang.IllegalArgumentException: 
[33,48]: [ERR 101] Line 33:48 no viable alternative at input '2' 
      in rule "rule_3_increment_more" in pattern DroolsObjectRule 
[33,79]: [ERR 102] Line 33:79 mismatched input ')' expecting '(' 
      in rule "rule_3_increment_more" in pattern DroolsObjectRule in pattern $drol.time 

有什麼想法?

回答

0

該規則在5.3.0,5.6.0,5.5.0,6.0.0和6.1.0中正常工作。

如果您使用的是舊版本,堅持約束的傳統形式:

DroolsObjectRule(backend == "AD1", $avgTime: avgTime, 
        time < 2*$avgTime) 
+0

你說得對。我沒有意識到服務器有一個老版本的drools(5.0),更新過的庫並運行良好。謝謝。 – UserMan 2014-09-23 14:44:58