Drools 规则返回值 null不触发?

如何解决Drools 规则返回值 null不触发?

我是流口水的新手。我创建了以下对象:

package com.myspace.applicant;

public class Applicant implements java.io.Serializable {

    static final long serialVersionUID = 1L;

    private java.lang.Integer age;
    private java.lang.Boolean approved;
    private java.lang.Double money;
    private java.lang.String name;

    public Applicant() {
    }

    public java.lang.Integer getAge() {
        return this.age;
    }

    public void setAge(java.lang.Integer age) {
        this.age = age;
    }

    public java.lang.Boolean getApproved() {
        return this.approved;
    }

    public void setApproved(java.lang.Boolean approved) {
        this.approved = approved;
    }

    public java.lang.Double getMoney() {
        return this.money;
    }

    public void setMoney(java.lang.Double money) {
        this.money = money;
    }

    public java.lang.String getName() {
        return this.name;
    }

    public void setName(java.lang.String name) {
        this.name = name;
    }

    public Applicant(java.lang.Integer age,java.lang.Boolean approved,java.lang.Double money,java.lang.String name) {
        this.age = age;
        this.approved = approved;
        this.money = money;
        this.name = name;
    }

}

一个包含规则的 *.drl 文件

package com.myspace.applicant;

import com.myspace.applicant.Applicant;

no-loop

rule "approve applicants"
when
    $a: Applicant(age > 30,money > 1000,approved == false)
then
    modify($a) {
        setApproved(true);
    }
end

在 Postman 中,我尝试使用以下正文调用规则:

{
    "lookup" : null,"commands" : [ {
        "insert" : {
            "objects" : {
                "Applicant": {
                    "age": 28,"approved": false,"money": 10000,"name": "boehlen"
                }
            },"disconnected" : false,"out-identifier": "Applicant","return-object" : true,"entry-point" : "DEFAULT"
        }
    },{
        "fire-all-rules" : {}
    } ]
}

我得到了以下答案:

{
  "type" : "SUCCESS","msg" : "Container Applicant_1.0.0-SNAPSHOT successfully called.","result" : {
    "execution-results" : {
      "results" : [ {
        "value" : null,"key" : "Applicant"
      } ],"facts" : [ {
        "value" : null,"key" : "Applicant"
      } ]
    }
  }
}

问题是,我的值是 null 而不是我期望作为响应的对象。 server.log 是空的,我看不出有什么问题。请你帮帮我。

非常感谢。

解决方法

您的规则仅在申请人年龄大于 30 岁时触发。您的输入值包括 28 岁。

,

我能够解决问题。这是一个错字。我不得不写“结果”而不是“结果”。谢谢了

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?