Eclipse Drools 6.2.0 Plugin Error: org/drools/StatefulSession

Eclipse Drools 6.2.0 Plugin Error: org/drools/StatefulSession

这对于这个论坛来说可能有点太模糊了,但我正在尝试..

我有 Eclipse Juno 和 Drools 6.2.0 插件,使用 Java 8 JRE。 我有一个似乎有效的 DRL 文件,因为它运行时没有错误,但是 Eclipse 报告错误:org/drools/StatefulSession.

它也不会发现语法错误,例如缺少分号,因此 Eclipse 显然只是没有正确验证。

比如一个很简单的规则如:

rule "ABC"
salience 1000
when
    Person($surname : surname)
then
    logger.info("Surname is " + $surname)
end

不标记 logger.info 行缺少分号。

我的 DRL 文件所在的项目引用了 JRE 库以及一些自定义 类。

我已经通过 Eclipse 首选项创建了一个 Drools 运行时,selected。

我注意到如果我 select Drools 选项 "Allow cross reference in DRL files" 那么 StatefulSession 错误就会消失,但它仍然不会验证一般的 Java 语法错误,例如 missing semi -冒号(这可能是我的 Eclipse Java 设置的一个更普遍的问题)。

我的 drools 编码知识足够,但我对 Eclipse 设置和 Drools 插件的使用的了解不足,如果这是一个简单的设置问题,我深表歉意。

我的问题是:

  1. 这个 StatefulSession 错误是从哪里来的,它是什么意思?
  2. 为什么 Eclipse 不在我的规则 "then" 部分中标记 Java 语法错误?

提前致谢。

Drools 不要求您在右侧的语句后添加分号(如果后面有行尾)。

RHS 代码由特殊(特别)解析器解析,不严格遵守 Java 语法。比较宽松,但未必总能应付满Java。请注意,它必须能够处理语句的超集:包括 modify(...){...} 和 "macros",例如 insert()delete().