3

我们正在为我们的一个新项目探索 Drools BPM。我基本上来自 .Net 背景,对 Java 技术了解不多。

我们的期望是我们应该能够使用 Drools 创建规则和工作流,以便它可以作为 REST API 公开,然后应该使用这个 REST 从 .net/angular 客户端应用程序执行规则。

我已经使用 WildFly10 服务器配置了 KIE 服务器。似乎我所有的配置都工作正常,但是当我尝试连接到控制器(“ http://localhost:8080/kie-wb/rest/controller ”)时,它会给出以下错误消息。

Error Message : 
2018-01-22 12:30:09,263 INFO  [org.kie.server.controller.websocket.client.WebSocketKieServerControllerImpl] (KieServer-ControllerConnect) Kie Server points to non Web Socket controller 'http://localhost:8080/kie-wb/rest/controller', using default REST mechanism
2018-01-22 12:30:09,263 WARN  [org.kie.server.common.KeyStoreHelperUtil] (KieServer-ControllerConnect) Unable to load key store. Using password from configuration
2018-01-22 12:30:09,274 WARN  [org.kie.server.services.impl.controller.DefaultRestControllerImpl] (KieServer-ControllerConnect) Exception encountered while syncing with controller at http://localhost:8080/kie-wb/rest/controller/server/wildfly-kieserver error Error while sending PUT request to http://localhost:8080/kie-wb/rest/controller/server/wildfly-kieserver response code 405

下面的 URL 工作正常

http://localhost:8080/kie-wb

http://localhost:8080/kie-server/services/rest/server/

http://localhost:8080/kie-wb/rest/controller/management/servers

4

2 回答 2

4

根据互联网上泛滥的各种示例,我能够让工作台和 kie 服务器在同一个 Web 和/或应用程序服务器上工作。但是,我在使用在不同端口上运行的同一主机上的单独应用程序服务器设置更现实的生产就绪环境时遇到了这个特殊错误。问题是,仅当工作台和 kie 服务器都在同一应用程序或 Web 服务器上运行时,才支持 url 的 REST 版本。在单独的应用程序或 Web 服务器上时,它必须使用 Web 套接字(请参阅属性 org.kie.workbench.controller 的文档):

http://docs.jboss.org/drools/release/7.8.0.Final/drools-docs/html_single/#_wb.systemproperties

仅支持 Web Socket 协议与远程 Kie 服务器控制器连接。指定此比例时,Workbench 将自动禁用与运行嵌入式控制器相关的所有功能。

读完后,405 说得通了(方法不允许)。我更改了网址

http://ACTUAL_HOST_NAME:8080/kie-drools-wb/rest/controller

ws://ACTUAL_HOST_NAME:8080/kie-drools-wb/websocket/controller

这解决了405。

另外,我最初使用'localhost'作为实际主机名,但它仍然无法连接,所以我将其更改为实际主机名。最后,我仍然看到连接问题,然后发现两个服务器都需要

-Dorg.kie.workbench.controller.user=kieserver
-Dorg.kie.workbench.controller.pwd=kieserver1!
-Dorg.kie.server.user=kieserver
-Dorg.kie.server.pwd=kieserver1!

要在两台服务器上设置(请参阅https://groups.google.com/d/msg/drools-setup/Bpt-r_bIa2U/g0H1J77sBgAJhttps://groups.google.com/d/msg/drools-setup/ Aru_F98nL9g/Z6vUCm6hBQAJ)。

编辑:

在更多地摆弄它并阅读更多文档之后,引用的文档是指连接到外部控制器的工作台,而不是在工作台内配置控制器。

于 2018-07-20T19:54:41.983 回答
0

经过一番折腾,我的问题通过将角色"kieserver=kie-server,rest-all"和用户添加"kieserver"到 Business Central Workbench 来解决。

没有这些数据,我一直收到405.

于 2021-05-14T08:18:49.843 回答