我正在使用 JRules 6 并尝试使用 JRules API 执行规则。
我创建了一个新的 IlrSessionRequest 对象,将规则集路径传递给它的构造函数。当它执行时,它会失败,说规则集路径中的语法错误和错误代码XU.ERROR.10048。谷歌没有提供太多帮助..
规则集路径指的是什么?Niaevely,我刚刚输入了包含我的 XOM 的 jar 文件的路径,但它似乎不喜欢那样。
知道如何找出规则集路径是什么吗?
路径必须以与 Rule Execution Server 上显示的方式相同的方式指定:/ruleApp/ruleSet 没有任何路径信息。这是 JRules 7.1 中的使用示例。这在 JRules 6 上可能会有所不同:
String rulesetPath= "/" + "your_ruleApp" + "/" + "your_ruleset";
IlrSessionFactory factory = new IlrPOJOSessionFactory();
IlrSessionRequest request = factory.createRequest();
request.setRulesetPath(rulesetPath);
XU = 执行单元,因此根据您的解释,我会说“JRules”正在抱怨,因为它无法在您的规则应用程序中找到您的规则集,因此崩溃。
打开里面的 jar 文件(ruleapp),您应该会看到至少一个文件夹,名为:“your ruleapp name”
,其中一个文件夹名为:“your ruleapp version”(可能是“1.0”)
:“your ruleset name”
: “您的规则集版本”
,其中包含您的规则 atrifacts。
说得通?
可能的规则集路径:
1/ ruleappName/ruleappVersion/rulesetName/rulesetVersion
2/ ruleappName/rulesetName/rulesetVersion
3/ ruleappName/ruleappVersion/rulesetName
4/ ruleappName/rulesetName
注意:版本是可选的,如果未指定,则将使用最新部署的版本。
我为 JRules(7.01 和 7.1)编写了一整套 oh Helpers and Factories - 版本 6 可能需要一些调整 如果您有兴趣,请告诉我。
基本上有 RTSHelper 和 RESHelper 库
,其中包含创建查询、业务规则、提取器、规则集、规则应用程序、部署、基于查询创建规则集等的静态方法......
执行后从 RES 中删除规则应用程序等等......