Drools Decision table error : Error while creating KieBase
Drools Decision table error : Error while creating KieBase
我正在尝试执行 drools 决定 table。当我实现自己的示例代码时,出现以下错误:
java.lang.RuntimeException: 创建 KieBase 时出错。
我的 Eclipse IDE 控制台中可见的错误是:
java.lang.RuntimeException:创建 KieBase[消息时出错 [id=1,kieBase=patient,level=ERROR,path=PatientDecisionTable.xls,line=10,column=0
text=[ERR 101] Line 10:21 no viable alternative at input ''], 消息 [id=2, kieBase=patient, level=ERROR, path=PatientDecisionTable.xls, line=10, column=0
text=[ERR 101] Line 10:81 no viable alternative at input ''], 消息 [id=3, kieBase=patient, level=ERROR, path=PatientDecisionTable.xls, line=0, column=0
text=解析器返回了一个空包]]
在 org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:557)
在 org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:682)
在 org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:650)
在 com.Lab.Genomics.Run.PatientRun.main(PatientRun.java:15)
我的主要方法包含在下面class:
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import com.Lab.Genomics.model.Patient;
public class PatientRun {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
KieServices ks= KieServices.Factory.get();
KieContainer kContainer=ks.getKieClasspathContainer();
KieSession kSession= kContainer.newKieSession("ksession-patient");
Patient patientObject= new Patient();
patientObject.setBcConfirmed(1);
patientObject.setBcEarlyStage(1);
patientObject.setMetastatisSymptom(1);
patientObject.setName("Sumit");
patientObject.setPatientId(01);
kSession.insert(patientObject);
kSession.fireAllRules();
}catch(Exception e){
e.printStackTrace();
}
}
}
病人是我的宝贝。
我的决定 table 如下:
我的项目目录如下:
我找不到决定 table 中存在的错误。当我 运行 main 方法出现上述错误时。
我在这里 table 发现了一个关于 drools decision table 的问题,但这不是我检查过的情况。
我已经尝试搜索并且仍在尝试。非常感谢任何参考或帮助。
避免使用 Excel 默认提供的引号。您将它们放在 println 调用中的字符串周围:
左双引号,U+201C
右双引号,U+201D
如果我将这些击键输入 Excel 单元格:'A' ' ' 's' ... ':' ' ' '"' 'o' ... 'e' 'e' '"' 我会看到这个:
A string: “one two three”
现在我将它复制粘贴到一个文本文件中,运行 上面有一个转储程序:
0000000 41 20 73 74 72 69 6e 67 3a 20 e2 80 9c 6f 6e 65
0000020 20 74 77 6f 20 74 68 72 65 65 e2 80 9d 0a
查看 UTF-8 编码:0xE2 0x80 0x9C 和 0xE2 0x80 0x9D 的引号,这不是 DRL 代码中允许的引号。确保使用引号,代码点 U+0022。就是这样:->"<-
我正在尝试执行 drools 决定 table。当我实现自己的示例代码时,出现以下错误: java.lang.RuntimeException: 创建 KieBase 时出错。
我的 Eclipse IDE 控制台中可见的错误是:
java.lang.RuntimeException:创建 KieBase[消息时出错 [id=1,kieBase=patient,level=ERROR,path=PatientDecisionTable.xls,line=10,column=0 text=[ERR 101] Line 10:21 no viable alternative at input ''], 消息 [id=2, kieBase=patient, level=ERROR, path=PatientDecisionTable.xls, line=10, column=0 text=[ERR 101] Line 10:81 no viable alternative at input ''], 消息 [id=3, kieBase=patient, level=ERROR, path=PatientDecisionTable.xls, line=0, column=0 text=解析器返回了一个空包]] 在 org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:557) 在 org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:682) 在 org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:650) 在 com.Lab.Genomics.Run.PatientRun.main(PatientRun.java:15)
我的主要方法包含在下面class:
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import com.Lab.Genomics.model.Patient;
public class PatientRun {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
KieServices ks= KieServices.Factory.get();
KieContainer kContainer=ks.getKieClasspathContainer();
KieSession kSession= kContainer.newKieSession("ksession-patient");
Patient patientObject= new Patient();
patientObject.setBcConfirmed(1);
patientObject.setBcEarlyStage(1);
patientObject.setMetastatisSymptom(1);
patientObject.setName("Sumit");
patientObject.setPatientId(01);
kSession.insert(patientObject);
kSession.fireAllRules();
}catch(Exception e){
e.printStackTrace();
}
}
}
病人是我的宝贝。
我的决定 table 如下:
我的项目目录如下:
我找不到决定 table 中存在的错误。当我 运行 main 方法出现上述错误时。
我在这里 table 发现了一个关于 drools decision table 的问题,但这不是我检查过的情况。
我已经尝试搜索并且仍在尝试。非常感谢任何参考或帮助。
避免使用 Excel 默认提供的引号。您将它们放在 println 调用中的字符串周围: 左双引号,U+201C 右双引号,U+201D
如果我将这些击键输入 Excel 单元格:'A' ' ' 's' ... ':' ' ' '"' 'o' ... 'e' 'e' '"' 我会看到这个:
A string: “one two three”
现在我将它复制粘贴到一个文本文件中,运行 上面有一个转储程序:
0000000 41 20 73 74 72 69 6e 67 3a 20 e2 80 9c 6f 6e 65
0000020 20 74 77 6f 20 74 68 72 65 65 e2 80 9d 0a
查看 UTF-8 编码:0xE2 0x80 0x9C 和 0xE2 0x80 0x9D 的引号,这不是 DRL 代码中允许的引号。确保使用引号,代码点 U+0022。就是这样:->"<-