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