2

我正在尝试设置 kie 执行服务 (kie-server-services-6.2.0) 以供 kie-drools-wb-webapp-6.2.0 提供,当我尝试通过以下 webapp url执行服务器,它显示 BASIC 身份验证,不知道如何继续获取对执行服务器的访问权限,还获取端点 url,用于配置 kie-wb 的内置规则示例并获取 REST或 WSDL 工作。kie-wb 有一个角色为“admin”的用户名,我可以正确构建规则。非常感谢!!

4

1 回答 1

18

为了回答你的问题,我决定从一开始就创建 HOWTO,我所做的就是让我的 Drool 规则在远程服务器上执行。

我的任务是集成 Kie Workbench 和 Execution Server,以便业务用户能够创建 Drools 规则并将它们部署到 Repo,而开发人员可以通过调用独立 Drools 执行服务器的 REST 服务来使用这些规则。

您应该按照以下步骤操作:

在使用 Drools 执行服务器之前,让我使用这样的术语:

  • Kie Drools Workbench - 是用于创建模型和规则文件并将其部署到 Maven 存储库的 UI
  • Kie 执行服务器 - 是独立的 Drools 执行服务器。它使用命令的 REST 调用并返回执行结果
  • 假设您安装了 Tomcat 7.0/8.0 和 Maven

Drools Workbench 的部署

目前要部署的最稳定的 Kie Drools Workbench 版本是 6.1.0.Final。仅将此用于部署在 Tomcat 7.0 上!

  • 您可以从Jboss sonar repo下载名为 kie-drools-wb-distribution-wars 的文件,使用版本 6.1.0.Final 和tomcat7.war

  • 确保将以下 jar 添加到 Tomcat 的 lib 目录:javax.security.jacc-api-1.4.jar、kie-tomcat-integration.jar、slf4j-api-1.7.2.jar

  • 确保您在 Tomcat 的 tomcat-users.xml 中具有或添加了以下角色/用户:

<role rolename="admin"/> <!-- Tomcat Admin role -->
<role rolename="analyst"/> <!-- Kie Workbench Analyst role. -->
<role rolename="kie-server"/> <!-- Kie Drools Execution Server role. Needed to make REST Rules execution request -->
<user username="admin" password="admin" roles="manager-gui,manager-script" /> <!-- Tomcat Admin user -->
<user username="user1" password="user1" roles="admin, kie-server" /> <!-- Kie Drools Execution Server user. Needed to make REST Rules execution request -->

  • 将 tomcat7.war 部署到 Tomcat。我相信你知道怎么做
  • 打开链接:http://localhost:8080/kie-drools-wb-distribution-wars-6.1.0.Final-tomcat7.0/。使用上一步中配置的管理员凭据进入 Workbench。在我们的例子中user1/user1
  • 在 Kie Workbench 中创建一个模型、规则文件。验证它们并单击部署。确保你有 jar 文件,你的项目被放入 Maven 仓库!

    作为示例,您可以使用我为测试目的创建的规则和模型: Drool 规则文件:

    import com.arty.drlwb.MyExampleType;
    
    rule "one"
    when 
    MyExampleType(message == "Hello Worlddddd")
    then
    System.out.println("Hello World:)");
    end
    

Kie Drools 执行服务器的部署

在这个待办事项中,最稳定的 Kie Drools 执行服务器版本是kie-server-services-6.2.0.Beta3.war。你可以在这里下载它,Jboss sonar repo

    <response type="SUCCESS" msg="Kie Server info">
      <kie-server-info>
      <version>6.2.0.Beta3</version>
      </kie-server-info>
    </response>

<kie-container>
       <container-id>{your_container_id}</container-id>
       <status/> 
       <release-id>
            <group-id>{your_project_group_id}</group-id>
            <artifact-id>{your_project_artifact_id}</artifact-id>
            <version>{your_project_version}</version>
      </release-id>
     <resolved-release-id/>
</kie-container>

<response type="SUCCESS" msg="List of created containers">
 <kie-containers>
 <kie-container container-id="{your_container_id}" status="STARTED">
 <release-id>
<artifact-id>{your_project_artifact_id}</artifact-id>
<group-id>{your_project_group_id}</group-id>
<version>{your_project_version}</version>
</release-id>
 <resolved-release-id>
<artifact-id>{your_project_artifact_id}</artifact-id>
<group-id>{your_project_group_id}</group-id>
<version>{your_project_version}</version>
</resolved-release-id>
</kie-container>
</kie-containers>
</response>

使用 XML 格式。原因使用您自己的模型而不是 MyExampleType:

<batch-execution lookup="defaultKieSession">
<insert out-identifier="message" return-object="true" entry-point="DEFAULT">
    <com.arty.drlwb.MyExampleType>
          <message>Hello Worlddddd</message>
    </com.arty.drlwb.MyExampleType>
</insert>
<fire-all-rules/>
</batch-execution>

  • 检查您的 Tomcat 控制台。如果您收到Hello World :)消息和 SUCCESS 响应类型,现在都适合您!

PS由于有关该主题的文档的运气,我从GitHub查看了 Server 的源代码。查看kie-server-clientkie-server-integ-tests代码和测试。希望这可以帮助。

于 2015-01-20T12:10:24.940 回答