电子表格中没有RuleTable单元格 – Excel文件和DRT

我遇到了stream口水问题。 我正在使用spring-boot-drool-starter,可以在这里find: https : //github.com/jonashackt/spring-boot-starter-drools 。 我决定使用这个库,因为kmodule.xml声明path,不search在春季启动的BOOT-INF …

我目前面临的问题是:org.drools.template.parser.DecisionTableParseException:电子表格中没有RuleTable单元格。

我假设合并.drt文件(包括规则)和.xls有问题。 这是我的结构看起来。 你有什么想法? 我在周末与研究和问题斗争…

您不必使用kmodule.xml文件将电子表格与drt模板合并。 你可以使用ExternalSpreadsheetCompiler ,它可以从包含电子表格和drt文件的inputstream中生成DRL,你可以从classpath中获得这些文件。

要用生成的规则创buildKieSession ,请执行以下操作:

ExternalSpreadsheetCompiler converter = new ExternalSpreadsheetCompiler(); String drl = converter.compile(spreadsheetStream, ruleTemplateStream, 1, 1); KieServices kieServices = KieServices.Factory.get(); KieFileSystem kfs = kieServices.newKieFileSystem(); kfs.write("src/main/resources/simple.drl", kieServices.getResources().newReaderResource(new StringReader(drl))); KieBuilder kieBuilder = kieServices.newKieBuilder(kfs).buildAll(); KieContainer kieContainer = kieServices.newKieContainer(kieBuilder.getKieModule().getReleaseId()); KieSession kieSession = kieContainer.newKieSession();