Слюни Fusion 'имя переменной' неожиданно

Я работаю над созданием CEP с использованием Drools Fusion. У меня есть два класса событий ExpectedEvent и ActualEvent. Мне нужно убедиться, что объекты ActualEvent встречаются раньше, чем объекты ExpectedEvent. Тем не менее, я не могу заставить работать ключевое слово before. Это в потоковом режиме.

import hellodrools.ExpectedEvent
import hellodrools.ActualEvent

dialect "java"

rule "On Time"

when
    ExpectedEvent($expectedtime : getStart_time()) from entry-point entry one
    $actual:ActualEvent( this after[ 1m ] $expected ) from entry-point entryone

then

    System.out.println("ON TIME expected time: " + $expectedtime + " actual time " + $actualtime);

end

В IntelliJ я продолжаю получать сообщения об $ фактическом, говоря, что "фактический" неожиданный. Я не могу решить эту синтаксическую ошибку.

1 ответ

Я не думаю, что это связано с IntelliJ, хотя здесь IntelliJ не сообщает о правильной ошибке.

Я считаю, что настоящая проблема заключается в том, from entry-point ожидает строковый литерал или действительный идентификатор, который будет использоваться для идентификатора точки входа (который является строкой)

По твоему правилу "entry one"не является допустимым идентификатором, потому что он содержит пробел, и это не строковый литерал, потому что он не заключен в двойные кавычки (").

Вы можете попробовать заменить from entry-point entry one

с from entry-point "entry one"

Другие вопросы по тегам