最近太忙,今天終於可以抽出時間來更新,有幾位博友一直關注,所以我一定會更新。
前面講了很多,包括如何創建規則項目,如何編寫規則集,如何安裝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供遠程調用。
如果您在閱讀的過程中發現有遺漏或錯誤,請您在留言中提出,我們共同交流進步,歡迎轉載,惠及他人,但請注明出處!
感謝!