2017-06-05 16 views
0

に私は.I iは次のようにエラーを取得しています新しいrule.But書いていますdroolsがに新しいです:「」不一致の入力 '。'ルール

不一致入力をパターン内のルール "StopTextRule" に

私のルールはこれがDroolsの6.4.0を使用してコンパイルし

package com.******.*****; 

import java.lang.Number; 

rule "StopTextRule" 
    dialect "mvel" 
    salience 20 
    lock-on-active true 
    when 
     RoutingData(messageBody != null && (
         (messageBody.trim().equalsIgnoreCase("stop") || messageBody.trim().equalsIgnoreCase("\"stop\"") || messageBody.trim().equalsIgnoreCase("stop.") || messageBody.trim().equalsIgnoreCase("\"stop.\"")) 
          || (messageBody.trim().equalsIgnoreCase("quit")|| messageBody.trim().equalsIgnoreCase("\"quit\"") || messageBody.trim().equalsIgnoreCase("quit.")|| messageBody.trim().equalsIgnoreCase("\"quit.\"")) 
          || (messageBody.trim().equalsIgnoreCase("cancel")|| messageBody.trim().equalsIgnoreCase("\"cancel\"") || messageBody.trim().equalsIgnoreCase("cancel.")|| messageBody.trim().equalsIgnoreCase("\"cancel.\"")) 
          || (messageBody.trim().equalsIgnoreCase("UNSUBSCRIBE")|| messageBody.trim().equalsIgnoreCase("\"UNSUBSCRIBE\"") || messageBody.trim().equalsIgnoreCase("UNSUBSCRIBE.")|| messageBody.trim().equalsIgnoreCase("\"UNSUBSCRIBE.\""))) 
          && incomingMessageProtocol != null && incomingMessageProtocol.trim().equalsIgnoreCase("X")) 
     routingResp : RoutingRuleResponse(isStop == false) 
    then 
     modify(routingResp) { 
       setIsStop(true) 
     } 
end 
+0

を? – laune

答えて

0

です。私は、Javaの式をevalに入れなければならない古いバージョンを使用していると思います。

それはそうのように、このパターン書き換えるためにどのような場合には単純に次のようになります。バージョンを使用しているのDroolsの

rule x 
when 
    X(messageBody != null && 
     messageBody matches "\\s*(\"?)(?i:stop|quit|cancel|unsubscribe)\\.?\\1\\s*" && 
     incomingMessageProtocol != null && 
     incomingMessageProtocol matches "\\s*(?i:X)\\s*")) 
then 
    // ... 
end