从 Drools 6 中的数据库加载和更新规则

2024-02-28

如何在启动时从数据库表加载规则并从 Drools 6.2.0 中的同一个表更新它们?我找到了一个example http://sujitpal.blogspot.com/2013/03/jboss-rules-in-database-take-2.html使用 Drools 5,我可能可以从 Scala 转换为 Java,但看起来 API 已经发生了很大的变化......例如,我没有看到 RuleBaseFactory 类。

任何样本或文档将不胜感激。


我不确定从哪里来org.drools.RuleBaseFactory被拿走。下面是 Drools 5.3(可能更早)到 5.6 中的实现方式:

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ..., ResourceType.DRL);
if( kbuilder.hasErrors() ){
    System.err.println( "### compilation errors ###" );
    KnowledgeBuilderErrors errors = kbuilder.getErrors();
    for( KnowledgeBuilderError err: errors ){
        System.err.println( err.toString() );
    }
    throw new IllegalStateException( "compile errors" );
}
KnowledgeBase kbase = kbuilder.newKnowledgeBase();
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();

省略号指示插入包含规则文本的数据的位置。检查 API 是否有合适的类型; Ajava.lang.String应该可以接受。

这是我在 6.2 中使用的方式:

KieServices kieServices = KieServices.Factory.get();
KieFileSystem kfs = kieServices.newKieFileSystem();
kfs.write( "src/main/resources/simple.drl", ... );
KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ).buildAll();
Results results = kieBuilder.getResults();
if( results.hasMessages( Message.Level.ERROR ) ){
    System.out.println( results.getMessages() );
    throw new IllegalStateException( "### errors ###" );
}
KieContainer kieContainer =
    kieServices.newKieContainer( kieServices.getRepository().getDefaultReleaseId() );
KieBase kieBase = kieContainer.getKieBase();
kieSession = kieContainer.newKieSession();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Drools 6 中的数据库加载和更新规则 的相关文章

  • 将构造函数作为参数传递给方法

    我是java新手 开始研究构造函数 我看到一些构造函数作为参数传递给方法的示例 请告诉我当构造函数作为参数传递给方法时会发生什么 或者建议我一些链接 我可以在其中获得有关使用构造函数的足够知识 根据您需要传递构造函数的目的 您可以考虑传递供
  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • 记录共享和映射的诊断上下文

    据我所知 其他人做了什么来解决 Commons Logging 项目 针对 NET 和 Java 不支持映射或嵌套诊断上下文这一事实 执行摘要 我们选择直接使用实现者日志框架 在我们的例子中为 log4j 长答案 您是否需要一个抽象日志框架
  • 确定序列化对象的类型

    我需要通过套接字发送消息 从用户到引擎的请求 以及从引擎到用户的响应 所以流程本质上是 serialized request Server lt network gt Client serialized response request r
  • 如何在 JPA 和 Hibernate 中将数据库生成的列值定义为只读字段?

    使用 MariaDB 10 2 可以定义日期时间的默认值 例如创建和最后修改 我应该如何将此列作为只读字段访问 因为这个值应该只在数据库的控制之下 并且不应该从代码中修改 但我想在代码中读取这个属性 这很简单 只需设置insertable
  • 插入时的 iBatis 判别器

    我有一个抽象类Example以及与之相伴的具体子类 我使用鉴别器来提取数据out数据库的 像这样
  • 生成 equals 和 hashcode 时忽略属性

    假设我有一个类 Customer public class Customer private String firstName private String lastName private String doNotAddMeToEqual
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • 在带有 Protocol Buffers 的项目中使用 Proguard 有什么特点?

    我有一个使用 Google Protocol Buffers 的项目 一旦我尝试用 ProGuard 对其进行混淆 似乎 protobuf 会导致问题 我将所有自己的类打包成mybuildedclasses jar 谷歌代码被打包成prot
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 如何减去两个 XmlGregorianCalendar 对象来创建一个 Duration 对象?

    我想计算两个时间之间的差值XmlGregorianCalendar对象 从而创建一个Duration object 但我还没有找到执行减法的干净方法 你会怎么做 那应该是 DatatypeFactory newDuration xgc2 t
  • spring data jpa复合键重复键记录插入导致更新

    我有一个具有复合键的实体 我试图通过使用 spring data jpa 存储库到 mysql 数据库来持久化它 如下所示 Embeddable public class MobileVerificationKey implements S
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec
  • 为什么java.lang.Cloneable不重写java.lang.Object中的clone()方法?

    Java 规范java lang Cloneable接口将自身定义为表示扩展它的任何对象也实现了clone 休眠的方法java lang Object 具体来说 它说 一个类实现了Cloneable接口来指示java lang Object
  • Errors/BindingResult 参数应在模型属性、@RequestBody 或 @RequestPart 参数之后立即声明

    我通过剖析示例应用程序来自学 Spring 然后到处添加代码来测试我在剖析过程中开发的理论 在测试添加到 Spring 应用程序中的一些代码时 我收到以下错误消息 An Errors BindingResult argument is ex

随机推荐

  • 如何在带有 View Holder 的自定义 ListView 中使用 Button OnClick

    我需要一些帮助 我正在使用视图保持器从动态数组适配器显示 我有列表视图 每行包含 标题 文本视图 副标题 TextView 进度条 下载按钮 按钮 我想在单击下载按钮时显示进度栏并隐藏下载按钮 单击第一行的下载按钮时 会显示第一个进度条 但
  • 如何在glmnet中指定日志链接?

    我正在使用 R 中的 glmnet 和 caret 包在广义线性模型上运行弹性网络 我的响应变量是成本 其中成本 gt 0 因此我想为我的 GLM 指定一个带有日志链接的高斯族 然而 glmnet 似乎不允许我指定 link log 如下
  • freeglut 与 glew 的区别?

    我最近开始学习 OpenGL gt 3 3 并且我注意到很多示例和教程都使用 freeglut 和 glew 但根本没有真正解释其中的区别 在谷歌搜索和阅读令人作呕的内容之后 我发现的最好的描述是这样的OpenGL相关工具包和API htt
  • 无法使用本地 hadoop 连接 azure blob 存储

    在尝试连接时本地hadoop与AZURE BLOB存储 即使用作为 HDFS 的 Blob 存储 和 Hadoop 版本 2 7 1 它抛出异常 这里我已经通过设置属性成功形成了本地集群
  • 我可以更新 INT 值 + 1 并返回新值吗?

    MySQL PHP 是否可以在一次查询中增加 INT 值并返回新值 sql mysql query UPDATE table SET number number 1 WHERE id uniqid updated number 或者我需要发
  • SQL Azure 和 Azure 表存储如何比较? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何检查 Ubuntu 上是否正在运行一个我不知道名称的服务

    我不知道该服务的名称 但想通过检查其状态来停止该服务 例如 如果我想检查是否PostgreSQL http en wikipedia org wiki PostgreSQL服务是否正在运行 但我不知道服务的名称 那么如何检查其状态 如果服务
  • 如何在 Swift 中分配/释放不安全指针?

    在 Beta 4 中 我的代码运行良好 var red green blue alpha UnsafePointer
  • 仅当字符串中的第 n 个字符是 R 中的特定字符时才替换它

    我正在将一系列调查导入为 csv 文件并组合成一个数据集 问题在于七个文件之一的某些变量的导入略有不同 数据集很大 我想找到一种方法来编写一个函数来运行给我带来麻烦的数据集 在某些变量中 应该有点的时候却有下划线 并非所有变量都具有相同的格
  • 在我的 Flex 应用程序中获取数据的最佳方式是什么?

    我是 Flex 开发新手 在创建新的移动项目时 它询问我是否要将其连接到某些服务器 并给了我四个选项 ColdFusion PHP Java 和 blazeDS 我一直在 java 工作 而不是 PHP 人员 我会简单地选择Java并忽略了
  • 变量未在 PHP 循环中传递/更新

    所以基本上我正在做的是创建 php 脚本 该脚本打印表格并根据表单中输入的内容更新和计算值 所以我有一个单独的 HTML 文件 其中包含表单 它传递 3 个变量 tempStart tempEnd windSpeed 然后我创建了一个在表的
  • 在 Eclipse 帮助中搜索 RCP 未返回任何结果

    我有一个 RCP 应用程序 并在菜单上启用了帮助 我能够成功调出我创建的帮助 但是 当我输入搜索词时 没有返回结果 需要什么才能从 Eclipse 帮助引擎搜索我的帮助内容 解决方案是使用帮助内容更新插件的版本号以重建索引 我依赖 qual
  • VS2010 构建后事件,替换文件中的字符串。电源外壳?

    在 VS2010 中成功构建后 我需要替换缩小的 js 文件中的简单字符串 因此 我尝试从 构建后事件 窗口运行一个简单的命令行调用 这个例子 来自这里 https blogs technet com b heyscriptingguy a
  • Polymer 中的横向通信

    问题是这样的 任何两个聚合物元素都可能需要通信 没有假设这些元素可能位于 DOM 或影子 DOM 中的位置 这意味着一个事件不能简单地冒泡到另一个元素 实现这一点的好旧方法是让事件冒泡到根节点 然后触发播送根节点上的事件供其他元素监听 然而
  • 如何在sklearn中找到多个节点的最近邻居?

    所以基本上我正在开发一个推荐系统 其中用户可以选择多个电影 节点 并给出与用户选择的所有电影 节点 相似的推荐 为了做到这一点 我需要同时找到这些多个节点的最近邻居 即结果应该接近node1 and node2 我怎样才能做到这一点 X 0
  • 构建规则中的 Bazel 环境变量

    我想参考 DirectX SDKBUILD文件 问题是 据我所知 Bazel 仅支持通过 action env DXSDK DIRBazel 的参数 它应该在动作中使用 必须在插件中定义 bzl file 有没有更简单的方法通过将环境变量用
  • 如何从给定索引列表的 std::vector 中删除项目

    我有一个项目向量items 以及应该从中删除的索引向量items std vector
  • GIDSignIn 钥匙串错误 iOS 10 Xcode 8

    在 iOS 10 和 xcode 8 中 当我尝试登录 google 服务时 我得到 钥匙串错误 func sign signIn GIDSignIn didSignInFor user GIDGoogleUser withError er
  • 从 jQuery UI 对话框内部的元素关闭它?

    这是一个简单的问题 可能比我想象的要简单 我正在使用 ajax 调用生成的 html 填充 jQuery UI 对话框 在某些情况下 html 包含一个按钮 单击该按钮时 我想关闭包含的对话框 假设我对指定为对话框的元素一无所知 eleme
  • 从 Drools 6 中的数据库加载和更新规则

    如何在启动时从数据库表加载规则并从 Drools 6 2 0 中的同一个表更新它们 我找到了一个example http sujitpal blogspot com 2013 03 jboss rules in database take