问题标签 [drools-kie-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1827 浏览

drools - 如何在 KIE 服务器中跟踪 drools 规则执行?

当规则应用程序在 KIE 服务器上运行时,如何启用规则引擎跟踪/日志记录?

规则应用程序是在 Workbench 中创建的,并且不包含自定义代码。我能够使用 KIE REST API 执行规则,但规则应用程序没有产生预期的结果。

环境:

Win7

雄猫 9

Drools 6.5.0-Final

更新:

我尝试了以下步骤:

  1. 使用 git 在本地克隆工作台项目
  2. 将 logback.xml 添加到项目的根目录
  3. 将更改推送回工作台 git repo
  4. 在工作台项目编辑器视图中添加了 logback 作为依赖项
  5. 更新项目版本并重新部署到容器

当我这样做时,它会忽略我的日志记录设置,但垃圾邮件会无休止地将消息记录到控制台,告诉我它无法实例化 logback 类:

0 投票
1 回答
1743 浏览

spring-boot - Drool 与 spring-boot 的集成没有按预期工作

问题:Rule( InterestRate .drl) 在独立的 java 代码中被触发并给我准确的结果

给我预期的 12.5 作为利率。

问题:我必须将它集成到休息服务中,我一直在尝试在休息环境下测试相同的逻辑,但它没有给我预期的结果。触发规则后,服务总是返回默认值 0.0。我的环境是 Spring-boot 和 drool是 6.5.0 最终版。

POJO:

豆配置

控制器:

规则服务实现:

DRL 文件:

包 com.test.drool.facts

摇篮依赖:

0 投票
2 回答
488 浏览

java - 通过 tomcat 部署 Drools 失败

通过tomcat启动drools服务时出现错误。

我的环境详细信息:

一)CentOS 7.2,

ii) jdk1.7.0_67,

iii) apache-tomcat-8.5.16,

iv) kie-drools-wb-7.0.0.Final-tomcat8.war

编辑1:

我的服务器中没有 Java 8

0 投票
0 回答
63 浏览

drools - jBPM 流程实例迁移在 6.1 版本中不起作用

我正在尝试在 jBPM 6.1 中迁移 jBPM 流程实例,而它们似乎不起作用。这是逻辑:

而在执行方法之外的那一刻,进程名称和节点名称与旧进程相同。而且它没有给出任何错误,但在数据库中,流程实例没有变化。

谁能帮我解决这个问题。在调用 execute 之前有什么需要注意的吗?用户交易呢?

任何类型的信息都会非常有帮助。请回答!!!!!

谢谢

0 投票
0 回答
577 浏览

drools - 在 Cloud Foundry 中部署 kieserver

我需要在 Cloudfoundry 中部署 Kie 服务器。我试图将战争文件(https://download.jboss.org/drools/release/7.0.0.Final/kie-server-distribution-7.0.0.Final.zip)推送到 CF。应用程序正在启动,但在启动时崩溃。错误:

作为另一种选择,我尝试部署一个 docker 镜像,因为基础设施和防火墙,它需要一些云团队的时间。

有人可以建议我如何在 CF 中托管 kie 服务器和在 CF 中工作的 docker 映像(kieserver)。

更新

我还尝试使用弹簧启动来部署它,在 pom.xml 中添加 kie 服务器作为依赖项。在将其部署到 CF 之前,我正在本地尝试此操作。如果我错了,请纠正我。pom.xml

web.xml

应用程序.yml

所以根据这个文档。我正在尝试我的这个 url -> http://localhost:8080/proj-kie-server/services/rest/server

如果启动了 kie 服务器,则假设是响应。

但我看到错误。

我应该如何使用 spring boot 应用程序启动 kie 服务器。

谢谢你。

0 投票
0 回答
324 浏览

xml - 使用 Drools 实现业务规则引擎

我正在为一个企业银行项目工作。我最近被要求验证来自不同银行的 XML。我必须构建一个允许定义业务规则的应用程序,然后将这些规则应用于传入消息(在本例中为 XML)。团队给了我选择我喜欢的任何产品的自由,我知道流口水最适合它。

作为drools的初学者,我看过各种教程并了解基本知识。但我仍然对如何在这个项目中使用它们感到困惑。我也无法获得有关规则定义和验证的流口水银行特定流口水示例的良好资源。

看到 drools 示例,我知道它使用 POJO,我可以在其上添加业务规则。如何将它与 XML 一起使用?我需要从 XML 中进行 POJO 还是 drool 可以直接使用 XML?

谁能告诉我如何进一步进行?

0 投票
0 回答
712 浏览

spring-boot - Drools - 资源既没有源也没有目标路径

我对 Drools 很陌生,并调整了我在这里找到的 Spring Boot 配置,使我能够从数据库中读取一堆规则作为字符串,而不是从应用程序文件夹中的 DRL 文件中读取它们。

当我使用下面的代码启动我的应用程序时,我使用 Spring Boot、Drools 6.5.Final、Java 1.8 得到以下异常:

引起:java.lang.RuntimeException:资源既没有源也没有目标路径。无法将其添加到捆绑包中。请在添加它之前设置资源的源或目标名称。在 org.drools.compiler.kie.builder.impl.KieFileSystemImpl.write(KieFileSystemImpl.java:95) ~[drools-compiler-6.5.0.Final .jar:6.5.0.Final]

关于如何解决这个问题以允许我从字符串加载规则的任何想法?

提前致谢

0 投票
1 回答
288 浏览

drools - Drools:创建条件规则以将输入作为列表匹配每个条件的排列和组合

在 Drools 中,我如何创建条件规则以匹配 if

1)输入是一个列表。

2)每个条件列都有自己的列表

3)条件应在所有条件列表的排列和组合中匹配

如果我的决策表采用以下格式

我将有如下列表形式的条件

通过创建所有列表的排列和组合,我的结果将是。输出:(AD112,AD114)

在我的实际用例中,每个列表中可能有 1000 个值。我的决策表可以有一百万条记录。

我怎样才能实现使用流口水。

0 投票
1 回答
260 浏览

jaxb - ServiceResponse 结果始终为空(JAXB、KIE Workbench 和 KIE Server 6.5.0)

我在 KIE Workbench 版本 6.5.0 中有一个项目设置和一个 KIE 执行服务器 6.5.0 正在运行,都在同一个本地 Wildfly 10 上。它工作正常。我有一个简单的规则,它在无状态的 KieSession 中执行,没有进程或其他任何东西。我希望该规则能够验证基本信息并将有关已触发验证的信息添加到全局变量中。在我正在测试的示例中,我只是修改了一个全局变量以查看它是否有效,但由于某种原因,我从未从服务中获得结果,我希望它至少有一些东西。

这是我发送的 JAXB 请求:

执行的规则非常简单:

在 Wildfly 控制台中,我看到打印的行没有任何附加信息(如错误的堆栈跟踪),所以我得出结论一切运行良好:

但我总是得到相同的响应:它表明“进程”已正确终止(所以乍一看),因此我期待 Result 有一些东西(一个空的 xml 响应,一个包含一些数据的 xml 响应, ...):

使用 KieServicesClient 调用客户端:

我错过了一些东西,但我真的不知道是什么。

所有相关项目都在GitHub 上。由于我不能发布两个以上的链接,我将在评论中添加直接链接。

这个问题也在: Drools 用户组

0 投票
1 回答
786 浏览

drools - Drools:不匹配时查询的默认值

我正在编写一个 Drools 规则集处理类型为Aand的事件B;并且在许多规则中,我需要将A' 属性与'属性timestamp子集的最大值进行比较以限定该事件。如果该子集是一个空集,我假设没有 windowStart,因此需要该值。任何具有大于的 a都将符合条件。BwindowStartAB0AtimestampwindowStart

考虑以下伪代码进行详细说明:

如果没有这样的查询,则需要复制与此比较有关的每个规则的 LHS,一次是为了说明不存在任何规则B,一次是为了在子集非空时找到实际的最大值。

像上面的伪代码这样的查询使这项任务变得更加容易,并且不需要分支 LHS。有可能这样做吗?这样做而不是分支提到规则的 LHS 有什么缺点或好处吗?