前言
由于我们公司用到ilog规则引擎,于是记录一下如何在本地执行规则集.方便以后自己查找.
新建规则项目以及XOM项目
这两个项目是我写的一个小例子,用于演示一些基本操作.
项目结果如下:
新建规则
如果
'保单' 的被保险人 的年龄 小于 20
那么
'返回结果' . 添加返回结果( "被保险人年龄控制",不成立 ,"被保险人年龄小于20") ;
否则
'返回结果' . 添加返回结果( "被保险人年龄控制",成立 ,"被保险人年龄大于20") ;
这是一个被保险人年龄的判断规则.
发布到res进行测试
在将本地测试之前,我先发布到res进行测试.看看项目有没有什么问题.
新建RuleApp项目
右键规则项目 -> 新建 -> 其他
选择RuleApp项目
输入项目名称
添加规则项目
点击完成
将规则项目发布到res服务器
邮件RuleApp项目 -> RuleApp -> 部署
选择增量RuleApp主要版本
输入res服务器的地址,用户名以及密码,点击完成
控制台看到如下结果表明已经成功部署上去了
打开浏览器,访问res服务器,进入后点击资源管理器tab页,展开刚刚发布上去的项目,并点击规则集,然后点击右边的检索 HTDS 描述文件.
- 选择REST,并点击测试
出现以下页面表示已经没问题了,如果进入这个页面报错,可能是你的项目有问题,再检查以下规则,以及规则流,jdk版本等是否符合规范.
测试
点击执行请求,返回以下结果
可以看到我们的项目返回了正确的结果,说明没有问题.那么,接下来,我们尝试在本地执行我们的规则.
本地测试
- 新建本地测试项目
将XOM项目中的代码考到测试项目中
新建lib文件夹,导入相关jar包,并把jar包引入到构建路径中
将规则集导出
将导出后的jar包解压,复制其中的ruleset.jar到测试项目的lib下
6.新建test类,并键入一下代码进行测试
1 | package test; |
7.运行测试类,见到以下输出结果.
被保险人年龄小于20
本地执行规则的好处就是执行速度比较快,而且能够对代码进行断点调试,方便查找bug.
本文地址是:ilog 本地执行规则 转载请注明原创地址。
参考博文:
Java调用ILOG两种形式备忘