Слюни 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"