如何在单个 kie 会话中加载所有 DRL 文件和 DRL 字符串内容
How to load all DRL files and DRL string content in single kie session
我想通过 Kie Helper 在单个 kie 会话中通过规则模板加载所有 DRL 文件和生成的 DRL。使用以下配置,我可以加载单个 DRL 文件和 DRL 内容(字符串)。但是我想同时加载所有DRL文件和drl内容(字符串)。
KieHelper kieHelper = new KieHelper();
kieHelper.addContent(drl, ResourceType.DRL);
kieHelper.addResource(ResourceFactory.newClassPathResource("com/sample/Rules.drl"), ResourceType.DRL);
Results results = kieHelper.verify();
KieSession session = kieHelper.build().newKieSession();
如果我使用这个,kieHelper.addResource(ResourceFactory.newClassPathResource("com/sample/*.drl"), ResourceType.DRL);我收到文件未找到异常。
请让我知道如何实现这一目标。我不想通过 Kie class 路径容器创建 kie 会话。感谢对此的任何帮助!
如果有人在寻找解决方案,请使用这个。我使用 Spring 的 PathMatchingPatternResolver 加载所有 DRL 文件。
private static KieHelper getResourceFolderFiles (String folder, KieHelper kieHelper) throws IOException {
ClassLoader cl = Thread.currentThread().getContextClassLoader().getClass().getClassLoader();
ResourcePatternResolver resolver = new
PathMatchingResourcePatternResolver(cl);
Resource[] resources = resolver.getResources("classpath*:com/sample/rules/**/*.drl") ;
for (Resource resource: resources){
kieHelper.addResource(ResourceFactory.newFileResource(resource.getFile()),
ResourceType.DRL);
} } return kieHelper;
}
我想通过 Kie Helper 在单个 kie 会话中通过规则模板加载所有 DRL 文件和生成的 DRL。使用以下配置,我可以加载单个 DRL 文件和 DRL 内容(字符串)。但是我想同时加载所有DRL文件和drl内容(字符串)。
KieHelper kieHelper = new KieHelper();
kieHelper.addContent(drl, ResourceType.DRL);
kieHelper.addResource(ResourceFactory.newClassPathResource("com/sample/Rules.drl"), ResourceType.DRL);
Results results = kieHelper.verify();
KieSession session = kieHelper.build().newKieSession();
如果我使用这个,kieHelper.addResource(ResourceFactory.newClassPathResource("com/sample/*.drl"), ResourceType.DRL);我收到文件未找到异常。
请让我知道如何实现这一目标。我不想通过 Kie class 路径容器创建 kie 会话。感谢对此的任何帮助!
如果有人在寻找解决方案,请使用这个。我使用 Spring 的 PathMatchingPatternResolver 加载所有 DRL 文件。
private static KieHelper getResourceFolderFiles (String folder, KieHelper kieHelper) throws IOException {
ClassLoader cl = Thread.currentThread().getContextClassLoader().getClass().getClassLoader();
ResourcePatternResolver resolver = new
PathMatchingResourcePatternResolver(cl);
Resource[] resources = resolver.getResources("classpath*:com/sample/rules/**/*.drl") ;
for (Resource resource: resources){
kieHelper.addResource(ResourceFactory.newFileResource(resource.getFile()),
ResourceType.DRL);
} } return kieHelper;
}