使用scala关闭drools会话时数据丢失

使用scala关闭drools会话时数据丢失,scala,drools,kie,Scala,Drools,Kie,我有一个应用程序,它是用kiesessionstatefull对象创建的,它处理规则,并将结果生成到迭代器中。但是,当我试图在处理完会话后返回结果时,我面临着一些问题 def ruleExucetion[T](originalData: Iterator[T], drtFile: String ): Iterator[T] = { val kSession = getKieSession(drtFile) val processedData = getDataModels(kSession,

我有一个应用程序,它是用kiesessionstatefull对象创建的,它处理规则,并将结果生成到迭代器中。但是,当我试图在处理完会话后返回结果时,我面临着一些问题

def ruleExucetion[T](originalData: Iterator[T], drtFile: String ): Iterator[T] = {
 val kSession = getKieSession(drtFile)
 val processedData = getDataModels(kSession, originalData)
 // processedData.size ==> printing the value, but after dispose function, I lost the Iterator data.
 kSession.dispose()
 return processedData
}
在这里,我如何处理/关闭连接而不丢失
processedData
。我们可以为上述迭代器设置(scala)急切加载吗

编辑:

def getDataModels[T](kSession: KieSession, originalData: Iterator[T]): Iterator[T] = {
   val dataModels = originalData.map(dataModel => {
   kSession.insert(dataModel)
   dataModel
  })
  kSession.fireAllRules()
  return dataModels
}
以下是错误桩跟踪:-

ERROR ApplicationMaster: User class threw exception:       java.lang.IllegalStateException: Illegal method call. This session was previously disposed.
java.lang.IllegalStateException: Illegal method call. This session was previously disposed.
at org.drools.core.impl.StatefulKnowledgeSessionImpl.checkAlive(StatefulKnowledgeSessionImpl.java:1255)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:1493)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:1454)
at org.drools.core.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:1448)
at com.giri.rules.Run$$anonfun$1.apply(Run.scala:36)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$class.foreach(Iterator.scala:893)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1336)
at scala.collection.TraversableOnce$class.size(TraversableOnce.scala:107)
at scala.collection.AbstractIterator.size(Iterator.scala:1336)

你面临什么问题?你失去了什么连接?@EstebanAliverti:是的,在kiesession中面临连接失败的问题<代码>java.lang.IllegalStateException:非法方法调用。此会话以前已被释放。没有堆栈跟踪,也不知道您的
getDataModels()
方法在做什么,这对您很难有帮助。@EstebanAliverti我添加了堆栈跟踪详细信息