Drools - 无法创建要加载到KieContainer的资源

时间:2015-05-11 13:49:01

标签: scala akka drools kie

我在Scala中使用以下代码块来创建一个KieContainer,我创建了一个新的KieSession:

val kieSession = DroolsMgt.getKieSession(List("myFile.drl"), Boot.kieServices){
   val kfs = kieServices.newKieFileSystem()
    for (filename <- drlFiles) {
      val fis = new FileInputStream(filename)
      kfs.write(filename, kieServices.getResources.newInputStreamResource(fis))
    }

    val kieBuilder = kieServices.newKieBuilder(kfs).buildAll()

    val kieContainer = kieServices.newKieContainer(kieServices.getRepository.getDefaultReleaseId)

    kieContainer.newKieSession()
}

这个代码在Drools-only项目中运行时运行得很好,但是现在我将它集成到一个涉及Actor系统等的大型项目中。我得到了{{1}尝试通过调用null将我的drl文件用作资源时的值。

因此,没有任何文件被加载到我的KieContainer中,并且KieBase中没有创建任何KiePackages,这意味着任何时候都不会触发任何规则(即使是没有&#34的空白规则;当&#34;条件时)

什么可能导致KieResources返回null?是否有任何依赖项或导入需要注意?

编辑: 我还运行以下代码来验证正在读取的DRL文件的内容。它按预期打印出来,但资源最终仍为kieServices.getResources.newInputStreamResource(fis)

null

0 个答案:

没有答案