亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法從類路徑外部導入規則文件?

有沒有辦法從類路徑外部導入規則文件?

三國紛爭 2023-03-23 16:42:05
我在 eclipse 中擺弄 Drools 決策表并注意到我能夠將規則文件導入我的 Kie 會話的唯一方法是將文件直接放在 eclipse 項目中。我想知道是否有一種方法可以訪問位于“C:Users/user/documents/rules/”中某處的規則文件,或者該文件是否必須位于工作區中。我對 Drools 或 KIE 不是很熟悉,所以我對這些服務的唯一了解涉及網站上的文檔以及 google 和 youtube 上的各種教程。到目前為止我找到的代碼似乎還不夠。KieServices ks = KieServices.Factory.get();KieContainer kContainer = ks.getKieClasspathContainer();KieSession kSession = kContainer.newKieSession("ksession-dtables");上面直接引用了一個在 xml 文件中預定義的會話,我不確定如何定義我自己的會話以訪問 eclipse 項目之外的文件。KieServices kieServices = KieServices.Factory.get();Resource dt      = ResourceFactory          .newClassPathResource("Sample.xls", getClass());KieFileSystem kieFileSystem = kieServices.newKieFileSystem().write(dt);KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);kieBuilder.buildAll();KieRepository kieRepository = kieServices.getRepository();ReleaseId krDefaultReleaseId = kieRepository.getDefaultReleaseId();KieContainer kieContainer = kieServices.newKieContainer(krDefaultReleaseId);KieSession kieSession = kieContainer.newKieSession();而這個塊稍微好一點,因為我可以直接引用項目中的一個文件,但問題是它仍然需要在項目中。
查看完整描述

1 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

對于它的價值,我能夠找到解決方法。


Drools 有一個庫試圖將任何 excel 決策表文件轉換為 DRL 文件。使用這個庫,我使用了我的 excel 文件的路徑,然后基本上將 DRL 轉換為一個字符串,然后添加到 KIE 會話中。它最終看起來像這樣:


import org.drools.decisiontable.SpreadsheetCompiler;


String rulesExcel = "C:\\my\\path\\file.xls";

InputStream is = null;

try {

  is= new FileInputStream(rulesExcel);

} catch (FileNotFoundException e) {

        e.printStackTrace();

}

SpreadsheetCompiler sc = new SpreadsheetCompiler();

String rules=sc.compile(is, InputType.XLS);

KieSession kieSession = new KieHelper().addContent(rules, ResourceType.DRL).build().newKieSession();



查看完整回答
反對 回復 2023-03-23
  • 1 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號