首先,我知道你只是問KieContainer和KieBase,但我想知道所有5個KieConcepts重要的是要得到一個完整的圖像:
- KieServices:允許您創建KieContainers 。
- KieContainer:具有所有規則,功能等甲KieContainer引用可以加載KieModule及其依賴性。甲KieContainer可以具有1個或多個KieBases
- KieModule:定義多個KieBases和KieSessions。 KieModules可以包括其他KieModules。這意味着您可以擁有包含來自不同域的資產的頂級KieModule。這是一個鏈接到schema for KieModule,顯示你可以擁有的所有選項。
- KieBase:表示一組資產的編譯版本。例如,您可以使用相同的規則進行無狀態和有狀態會話。另一種選擇是對於一套包裝有一個KieBase,對於另一套包裝有另一個KieBase。
- KieSession:表示規則引擎的一個實例,其中包含KieBase中的規則。每個KieBase可以有一個或多個KieSessions
據我所知,這是不可能的幾種不同Kjars裝入一個KieContainer。
所以,我的建議是要麼
A)找到一個方法來一切都在一個Kjar結合,因此您可以創建一個 KieContainer與您的所有資產。這documentation可能會幫助您瞭解,如果這是您的用例的有效選項。
B)創建一個新的KieContainer for 您需要的每個版本的資產,並根據輸入進行相應的路由。這有更大的內存佔用,但如果你不能使用單個Kjar,這可能是最好的選擇。