【问题标题】:mismatched input '.' in rule不匹配的输入“。”在规则
【发布时间】:2017-06-05 09:52:56
【问题描述】:

我是流口水的新手。我正在写一条新规则。但我收到如下错误:

输入不匹配'.'在模式中的规则“StopTextRule”中

我的规则是

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

【问题讨论】:

  • 你使用的是哪个 Drools 版本?

标签: drools rule-engine kie


【解决方案1】:

这使用 Drools 6.4.0 编译。我认为您使用的是旧版本,其中 Java 表达式必须包含在 eval 中。

在任何情况下,像这样重写这个模式会更简单:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2012-11-04
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多