我在 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)有没有人看到这种行为(容器创建挂起)?