0

我在 tomcat 上运行 Drools 7.7.0.final KIE 服务器。通过对 KIE 服务器的 RESTful 调用启动容器时,我看到了这种行为......

永远不会创建容器,并且 RESTful 调用会无限期挂起。当我查询服务器时,我看到容器卡在“状态=“正在创建”中。

这并不总是发生。它似乎依赖于规则。在大多数情况下,我的 LHS(when 子句)的形式是..

myObject( (field1 != null) && field2 ) ... 等等 ....其中 field2 是一个布尔值。

当我尝试一些复杂的事情时,困难似乎出现了......

myObject ( JsonMappper.truth(propertiesString, "field2") )

...其中 propertiesString 是一个包含 JSON 的字符串,而 JsonMapper.truth 是一个静态方法,它根据 field2 的解码值返回一个布尔值。

奇怪的是,我从未收到编译错误,并且当我删除/添加各种规则时,行为会发生不可预测的变化。有时即使规则文件中存在多个带​​有 JsonMapper.truth 的规则实例,也会创建容器。规则之间似乎存在一些微妙的相互作用。

我的问题是:1)在 when 子句中使用这样的自定义 java 函数是否存在一些危险?2)有没有办法确定为什么容器创建挂起?我没有找到任何有用的日志。通常的 tomcat 日志中似乎没有写入任何有用的信息。3)有没有人看到这种行为(容器创建挂起)?

4

1 回答 1

0

我有类似的问题。但我认为这与 Enums 的使用有关。将版本切换到“7.9.0.Final”修复了所有问题。

于 2018-08-03T14:30:14.983 回答