setup drools Kie учетные данные исполнительного сервера

Я пытаюсь настроить службу выполнения kie (kie-server-services-6.2.0) для обеспечения kie-drools-wb-webapp-6.2.0, когда я пытаюсь получить доступ, следуя URL-адресу webapp исполнительный сервер показывает BASIC-аутентификацию и не знает, как поступить для получения доступа к исполнительному серверу, а также для получения URL-адреса конечной точки, для предоставления примеров правил встраивания kie-wb и получения REST или WSDL работает. У kie-wb есть имя пользователя с ролью "admin", и я могу правильно построить правила. Большое спасибо!!

1 ответ

Пытаясь ответить на ваш вопрос, я решил с самого начала создать HOWTO, что я делал, чтобы мои правила Drool выполнялись на удаленном сервере.

Моя задача состояла в том, чтобы интегрировать Kie Workbench и Execution Server, чтобы бизнес-пользователи могли создавать правила Drools и развертывать их в Repo, в то время как разработчики могли использовать эти правила, вызывая службы REST автономного исполнительного сервера Drools.

Вы должны выполнить следующие шаги:

Перед использованием Drools Execution Server позвольте мне использовать такую ​​терминологию:

  • Kie Drools Workbench - это пользовательский интерфейс для создания и развертывания файлов и моделей и правил в репозиторий Maven
  • Kie Execution Server - это автономный исполнительный сервер Drools. Он потребляет вызовы REST команд и возвращает результаты выполнения
  • Предполагается, что у вас есть Tomcat 7.0/8.0 и Maven установлен

Развертывание Drools Workbench

Наиболее стабильной версией Kie Drools Workbench для развертывания на данный момент является 6.1.0.Final. Используйте его только для развертывания на Tomcat 7.0!

  • Вы можете скачать файл с именем kie-drools-wb-distribution-wars из репозитория сонаров Jboss, использовать версию 6.1.0.Final и tomcat7.war.

  • Убедитесь, что вы добавили следующие jar-файлы в каталог lib Tomcat: javax.security.jacc-api-1.4.jar, kie-tomcat -gration.jar, slf4j-api-1.7.2.jar

  • Убедитесь, что у вас есть или добавлены следующие роли / пользователи в tomcat-users.xml вашего Tomcat:

<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 создайте файл Model, Rules. Проверьте их и нажмите Deploy. Убедитесь, что у вас есть jar-файл с вашим проектом, помещенным в репозиторий Maven!

    В качестве примера вы можете использовать правило и модель, которые я создал для целей тестирования: Файл правила Drool:

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

Развертывание Kie Drools Execution Server

На момент написания данного задания наиболее стабильной версией Kie Drools Execution Server является kie-server-services-6.2.0.Beta3.war. Вы можете скачать его здесь, репозиторий гидролокатора Jboss:

  • Разверните kie-server-services-6.2.0.Beta3.war на Tomcat
  • Сделайте запрос GET на http://localhost:8080/kie-server-services-6.2.0.Beta3/services/rest/server/. Если вы попросили предоставить имя пользователя / пароль, используйте тот, который вы настроили для роли kie-server в tomcat-users.xml. Вы должны увидеть тот же ответ:

    <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:) и тип ответа УСПЕХ, все работает для вас сейчас!

PS Из-за удачи документации по теме я проверил исходники сервера от GitHub. Взгляните на код и тесты kie-server-client и kie-server-inte- tests. Надеюсь это поможет.

Другие вопросы по тегам