2015-05-14 59 views
0

基本上,我首先在Eclipse中創建了一個Drools項目,並設計了一個基本規則應用程序,它將一個對象放入工作內存並激發所有正常工作的規則(使用ksession)。 我想知道如何從不同的Java應用程序(不同的eclipse項目)中調用這個規則應用程序,爲它提供輸入對象變量並將計算的變量(從激發規則)返回給新的Java應用程序,從而有效隔離規則從用戶界面進行處理。 找不到有關如何實現這一目標的好例子。當談到業務規則管理系統時,我是一個新手。如何將來自外部Java應用程序的數據提供給Drools BRMS並獲取數據?

回答

0

您可以創建一個創建靜態kSession的實用程序。然後創建一個方法,接受你的輸入並激發你的規則,如下所示(未經測試的代碼)。每當你想使用它,你可以打電話。

DroolsTest.getInstance()。fire(input);

public class DroolsTest { 

    private static KieSession kSession; 
    private DroolsTest instance; 

    private DroolsTest(){ 
    if(null == instance){ 
     // load up the knowledge base 
     KieServices ks = KieServices.Factory.get(); 
     KieContainer kContainer = ks.getKieClasspathContainer(); 
     kSession = kContainer.newKieSession("ksession-rules"); 
    } 
    } 

    public static DroolsTest getInstance(){ 
    if(null = instance){ 
     instance = new DroolsTest(); 
    } 
    } 

    public static void fire(Object input) { 
    kSession.insert(input); 
    kSession.fireAllRules(); 
    } 
} 
相關問題