最近太忙,今天终于可以抽出时间来更新,有几位博友一直关注,所以我一定会更新。

前面讲了很多,包括如何创建规则项目,如何编写规则集,如何安装res服务及发布规则包,但是做了这么多好像还是不知道如何在我们的应用中调用或使用我们创建的规则项目,那么今天,在这里一起看看,可以使用什么方式来在我们自己的应用中使用规则项目。

其实规则项目的发布有两种方式,一种是发布到文件系统中,也就是发布到一个文件夹下面,另一种是发布到数据库。

如何在自己的应用中调用规则?也有两种方式,一种是创建本地客户端,然后集成进我们自己的应用中,使用IBM提供的API可以直接调用规则集,另一种是将规则项目发布为webservice,通过wsdl创建客户端调用程序,然后集成进我们自己的应用中。

第一种方式:

打开rule Designer,查看一下现有的规则项目:

正好有一个规则项目和该规则项目的规则应用包(如果不会创建规则应用包,请查看关于res介绍的那篇博客,其中有介绍)。

在规则资源管理器右键→新建→其他→选择RuleApp的客户机项目:

点击下一步:

选择“简单的旧Java对象”,点击下一步:

录入项目名,点击下一步:

选择对应的RuleApp,点击下一步:

选择规则集归档,一直点击下一步到POJO属性界面:

这里接口名称和实施名称是自动给出的,不用修改,关键是下面res的配置,点击“浏览”:

点击创建配置:

点击“创建新配置项目”:

点击完成:

点击下一步,再点击下一步,到RuleApp部署页:

在这里可以看到,可以将RuleApp部署到文件系统,也可以部署到数据库,我们就选择默认部署到文件系统的文件夹。点击完成。(这里可以配置文件路径为你应用下的一个文件,这样可以直接将规则应用包部署到你的应用中,然后将生成的客户端代码移植到你的应用中,就可以在应用中调用相关规则,完成了应用对规则应用的集成)。

点击完成按钮:

点击确定按钮,之后默认一直到完成即可。

以下是该客户端项目的目录结构:

各位自己领会一下哈。

其中,src下的文件是生成的调用规则的相关接口文件,可以点开看看,很容易读懂,而且很人性话的给我们提供了一个调用类(Main.java),打开看一下:

可以看出,规则的执行也就一个方法(bean.executeAgeCheck(personAgeCheck)),将我们在规则项目中第一的参数传递进去,接口调用执行方法,返回一个包含输出参数的对象。

接下来我们测试一下:

这个规则集中有一个规则是这样的:

我们来测试一下这条规则的执行结果,我们将Main.java中的代码做一下修改:

我们初始化了两个人员,并分别将他们的年龄设置为18和17,然后执行规则,获取执行规则之后人员的信息并输出。查看输出结果:

输出结果符合规则执行预期。

至此,我们的规则调用客户端已经完成了。

最后关于如何将客户端代码迁移到自己的项目中,再做一点说明,你只需将生成的客户端项目中的res-data文件及src文件夹拷贝到你的项目中,这时,src目录中的相关文件会报错,找不到对应的xom类,你需要将原规则项目对应的xom拷贝进你的项目,最后将Ilog相关jar包引入即可,下图是我集成的一个项目:

 这一篇就到这里了,下一篇将介绍如何将规则发布成webservice供远程调用。

如果您在阅读的过程中发现有遗漏或错误,请您在留言中提出,我们共同交流进步,欢迎转载,惠及他人,但请注明出处!

感谢!

 

 

 

 

 

 

 

 

 

posted on 2016-02-17 10:33  灵魂盗猎者  阅读(2967)  评论(3编辑  收藏  举报