我有一个a.drl文件,它有效。对于a.drl,其标题如下所示:
package com.test.drools;
import java.util.List;
import java.util.Map;
import com.temp.ToDoItemTO;
import com.util.*;
我将这些罐子添加到构建路径中。
我想使用以下代码将其转换为.pkg文件:
KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kBuilder.add( ResourceFactory.newFileResource( drlFile ), ResourceType.DRL );
if( kBuilder.hasErrors() ){
for( KnowledgeBuilderError err: kBuilder.getErrors() ){
System.err.println( err.toString() );
}
throw new IllegalStateException( "DRL errors" );
}
OutputStream os;
try {
os = new FileOutputStream( pkgFile );
ObjectOutputStream oos = new ObjectOutputStream( os );
oos.writeObject( kBuilder.getKnowledgePackages() );
oos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但它给我带来了许多错误,如下:
[Line: 3768, Column: 2] : [Rule name='remove scheduled event_351']
Unable to Analyse Expression p.estActionDate2Loc != null:
[Error: com/icil/service/exception/entity/ApplicationException]
[Near : {... p.estActionDate2Loc != null ....}]
第3768行是:
when
holder : MultiHolder(p: previousTO, p.estActionDate2Loc != null)
then
.....
一次又一次地尝试之后,我添加了这个jar / com / icil / service / exception / entity / ApplicationException来构建路径,然后错误就消失了。
我的困惑是:
提前致谢。