问题标签 [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 投票
0 回答
459 浏览

drools - Drools - 通过 KIE 服务器 REST 执行规则没有给出响应

我正在尝试通过 KIE 执行服务器 (kie-server-7.17.0.Final-ee7.war) 执行使用 Drools Workbench (business-central-7.17.0.Final-wildfly14.war) 编写的规则,我当我使用 Postman、REST 客户端执行规则时,没有得到预期的响应。

我试过设置请求头“ X-KIE-ContentType XSTREAM”,设置有效负载标签<insert out-identifier="Employee" return-object="true" entry-point="DEFAULT">在哪里out-identifier="Employee"

请求有效载荷

规则文件

我希望输出如下所示(或类似),

但是我没有得到预期的结果,Wildfly 控制台中也没有打印 System.out 消息,这表明该规则没有执行?任何建议都会非常有帮助。

0 投票
1 回答
94 浏览

kie-workbench - 同步 Kie 工作台

我是 Drools 和 Kie Workbench 的新手。我在 tomcat 服务器上运行了 Kie 工作台。

我正在寻找 Clustering Kie Workbench,因为同一个项目将在三个不同的 tomcat 服务器上运行(每个服务器将有各自的 Workbench)指向不同的数据库(特定区域,如印度、美国)。现在,如果我对项目进行任何更改,例如在任何服务器中在运行时添加规则,它应该自动同步其他两台服务器中的项目。

0 投票
3 回答
912 浏览

java - 我如何读取插入到 KieSession 内部的 KieSession 之外的事实(例如规则结果)?

在我的规则执行期间,我将在内存中“插入”新的事实对象,当规则完成触发时我需要读取它。在规则会议之外,我如何阅读这些事实?

我试图从会话外部(即在“fireAllRules()”方法之前)插入带有 outIdentifier 的事实。但是,因为我可能不知道在规则会话期间可能会插入多少个 AccountingPeriod 事实,或者即使它会被插入,所以这种方法似乎不合适。

会计期间事实:

执行代码:

我的规则.drl

0 投票
1 回答
1020 浏览

drools - 流口水 | 重新加载规则而不重新启动服务器

我正在使用 Gradle 和 7.20 drools 版本创建一个 spring boot 应用程序。我们正在从位于路径的外部资源文件中加载 drools 知识库。drl_file_path下面是我的配置代码。

有机会我们必须更新drools规则,我们想在不重新启动服务器的情况下更新drools知识库,我们正在使用KieScanner.sacnNow()哪个不起作用,我缺少什么关键点。下面是重新加载和应用drools规则的代码-

0 投票
1 回答
415 浏览

drools - 无法使用 Kie Workbench 注册 Kie 服务器

“我正在将 Kie Workbench 7.5 和 Kie Server 7.5 都设置到 tomcat 8 中。但是“远程服务器”显示空白列表。

对于安装参考,我使用了http://blog.athico.com/2015/10/installing-kie-server-and-workbench-on.html这个博客。

一旦我点击http://localhost:8080/kie-server/services/rest/server这个 URL,我就会得到预期的输出,如下所示:

我提供的配置

1.setenv.bat

2. server.xml

3.上下文.xml

4.xa-recovery-properties.xml

在 Tomcat 控制台上,我收到以下警告:

0 投票
1 回答
1424 浏览

drools - KIE 服务器 - 无法从远程 Maven 存储库中找到工件

我正在使用 kie-server docker 映像并发送 curl 命令来执行必要的操作。

在我的 settings.xml 中,我定义了一个远程仓库:

当我尝试在 nexus 存储库中创建一个容器并定义一个工件时,我得到以下输出:

09:29:35,236 WARN [org.appformer.maven.integration.embedder.MavenSettings](默认任务 1)环境变量 M2_HOME 未设置

09:29:36,033 INFO [org.appformer.maven.integration.Aether](默认任务 1)本地存储库目录 /opt/jboss/.m2/repository 不存在。创建它。

09:30:06,421 WARN [org.appformer.maven.integration.MavenRepository](默认任务 1)无法解析工件:myGroup:myArtifact:0.0.1

09:30:36,542 错误 [org.kie.server.services.impl.KieServerImpl](默认任务 1)为模块“myGroup:myArtifact:0.0.1”创建容器“myContainer”时出错:java.lang.RuntimeException:不能找到 KieModule: myGroup:myArtifact:0.0.1

看起来它忽略了我的远程存储库设置并尝试使用本地存储库(并首先创建它,因为它不存在)。

如果我设置一个本地 maven repo 并将所需的工件放在那里,容器创建得很好,我可以运行规则,所以规则/jar/容器数据都可以。

一旦它运行,我已经检查了 kie-server docker 容器,并且正确的 settings.xml 文件位于 /opt/jboss/.m2 文件夹中,我认为这是正确的。

提前致谢。

0 投票
1 回答
927 浏览

drools - KIE 服务器(非托管)- 进程未实例化

使用 kie 服务器的 REST API,我创建了一个具有以下流程定义的容器:

如果我尝试启动进程的一个实例,它似乎可以工作,使用:

curl -i -u '用户:密码!' -X POST -H 'Content-type: application/json' http://localhost:8080/kie-server/services/rest/server/containers/someContainerId/processes/someProcessId/instances

我收到一个 HTTP 201 Created 响应。

但是,如果我随后获得流程实例列表,则该列表为空。使用:

curl -i -u '用户:密码!' -X GET http://localhost:8080/kie-server/services/rest/server/queries/containers/someContainerId/process/instances

我收到:

我的 .drl 文件为每个规则定义了相同的规则流组,并且 .bpmn 定义了一个开始事件和 businessRuleTask 定义了该规则流组:

BPMN:

如果我从 DRL 中删除规则流组,我可以简单地触发所有规则(甚至不需要 BPMN),但想了解进程在 kie 服务器中的工作方式以及如何启动它们。

我应该补充一点,我正在单独插入规则使用的 java.util.Map 对象。

抱歉,这似乎是一个相对基本的问题,但据我所知,它应该启动流程实例,因此不确定我缺少什么。

谢谢。

0 投票
1 回答
312 浏览

drools - DRL 中的 Drools 全局记录器 - 全局非法类

我正在尝试将 slf4j Logger 对象作为全局传递给我的 Drools 规则。

在我的调用 Java 类中,我定义了记录器并通过 setGlobal kie 服务器命令将其传递给规则:

在我的规则文件中,我将全局定义为:

但是,当我执行命令时,出现此错误:

错误 [org.kie.server.services.drools.DroolsKieContainerCommandServiceImpl](默认任务 1)调用容器“mycontainer”时出错:java.lang.RuntimeException:全局的非法类。预期 [org.slf4j.Logger],找到 [java.util.LinkedHashMap]。

我不知道它是从哪里得到 LinkedHashMap 的。我已单步执行调用代码,但看不到地图出现的位置。

如果我将规则文件中的全局更改为 LinkedHashMap,我不会收到错误消息。所以不知何故,看起来我在 Java 类中的记录器对象正在转换为 LinkedHashMap。

任何帮助表示赞赏,谢谢。

0 投票
1 回答
70 浏览

drools - 我们如何在 Drools(Kie 服务器)中创建动态下拉列表?

我需要使用“引导决策表”在 Kie 服务器中为 Drools 处理下拉列表。我可以在其中制作恒定的下拉列表。但是,我需要从代码后端读取数据作为字符串列表,然后我可以在下拉列表中显示相同的数据。我尝试了多个来源,但没有找到任何来源来制作下拉列表中的动态数据。我们可以看看我创建的下拉列表 -> 在此处输入图像描述

0 投票
0 回答
53 浏览

jbpm - 无法在 OptaPlanner 快速入门中选择“规划实体集合”

我需要学习 Optaplanner。Wildfly 和 jBPM 以及所有这些都是新的

我刚刚按照链接中的说明学习了 OptaPlanner 工作台和执行服务器。

OptaPlanner 版本:7.28.0.Final 操作系统:Linux WildFly 版本:wildfly-14.0.0.Final

我已经创建了资产,现在当我按照第 2.1.4.1 节配置规划器时

我已经完成了 ComputerList 的 Planner 配置,如下所示 在此处输入图像描述

但是对于 ProcessList ,“规划实体集合”无法找到它显示规划价值范围提供者我在哪里做错了

在此处输入图像描述