当前位置: 首页 > 知识库问答 >
问题:

Drools决策表错误:创建KieBase时出错

方风华
2023-03-14

我正在尝试实现drools决策表。当我实现我自己的示例代码时,我得到以下错误:java.lang.运行时异常:创建KieBase时出错。

Eclipse IDE控制台中可见的错误是:

Java语言lang.RuntimeException:创建KieBase时出错[消息[id=1,KieBase=患者,级别=错误,路径=PatientDecisionTable.xls,行=10,列=0文本=[错误101]行10:21输入“”处无可行的备选方案],消息[id=2,KieBase=患者,级别=错误,路径=PatientDecisionTable.xls,行=10,列=0文本=[错误101]行10:81输入“”处无可行的备选方案],org上的消息[id=3,kieBase=patient,level=ERROR,path=PatientDecisionTable.xls,line=0,column=0 text=解析器返回空包]]。流口水。编译器。kie。建设者实施。KieContainerImpl。位于org的getKieBase(KieContainerImpl.java:557)。流口水。编译器。kie。建设者实施。KieContainerImpl。org上的newKieSession(KieContainerImpl.java:682)。流口水。编译器。kie。建设者实施。KieContainerImpl。com上的newKieSession(KieContainerImpl.java:650)。实验室基因组学。跑PatientRun。main(PatientRun.java:15)

我的主要方法包含在下面的类中:

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();
            }
        }

    }

我无法找到决策表中存在的错误。当我运行main方法时,我得到了如上所述的错误。

我在这里发现了一个关于drools决策表的问题决策表错误,但这不是我检查的情况。

我一直在努力寻找,而且还在努力。非常感谢您的推荐或帮助。

共有1个答案

祁星阑
2023-03-14

避免使用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很陌生,正在尝试编译这个简单的。xls作为决策表,并得到这个非常无用的编译错误:[错误102]第8:1行规则“Patient Notification\u 11”中的输入“then”不匹配 我已经附加了xls以及随之而来的简单对象。我已经阅读了有关此内容的所有材料,但无法弄清楚为什么我会收到以下错误。我很感谢您提前提供帮助。具体来说,我想知道是否有办法检查并查看导致此错误的幕后原因

  • 我正在用MySQL数据库构建一个django应用程序。当我第一次运行“Python Manage.py Migrate”时,一些表创建得很好,然后出现一些错误。引出的错误是: 完整的回溯是:

  • 我正在尝试使用EclipseLink创建一个表。正在使用的java类是:- EL警告]:2017-04-07 14:04:53.768--ServerSession(1650327539)--异常[EclipseLink-4002](Eclipse持久性服务-2.6.3.v20160428-59C81C5):org.Eclipse.Persistence.exceptions.DatabaseEx

  • 当我尝试使用Drools引擎计算保险费时,我有一个潜在的性能/内存瓶颈。 我在我的项目中使用Drools将业务逻辑与java代码分开,我决定也将其用于溢价计算。 我是不是用错了口水 如何以更高性能的方式满足要求 详情如下: 我必须为给定的合同计算保险费。 合约配置有 productCode(来自字典的代码) 合同代码(来自字典的代码) 客户的个人资料(例如年龄、地址) 保险金额(SI) 等等 目前

  • 我有一个drools决策表,其中包含条件和位置类型 我的excel如下所示 设置参数的代码如下 我按要求提供的excel文件条件对象: 需求级别==$参数位置类型==$参数 当我像上面那样设置时,我得到以下错误: 创建KieBase时出错[消息[id=1,级别=错误,路径=规则.xls,行=8,列=0文本=[错误102]行8:14不匹配的输入'=='在规则“替换规则”中],消息[id=2,级别=错

  • 问题内容: 我在Docker容器中有一个MySQL数据库。入口点执行创建数据库的脚本和创建表的脚本。 除了一张桌子,其他所有东西都工作正常。 记录到控制台的错误是 第150行是后面的开括号 MySQL版本:8.0.3-rc-log 主机操作系统:Debian jessie 我开始考虑并且可能是保留关键字,因此我重命名了表和列,但错误仍然存​​在。 问题答案: @Bill Karwin在第一条评论中