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: Сделайте запрос PUT по адресу http://localhost:8080/kie-server-services-6.2.0.Beta3/services/rest/server/containers/ {your_container_id} Используйте этот формат XML:
<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>
- Если вы получили ответ о статусе SUCCESS, вы можете проверить, что все контейнеры были развернуты. Сделайте GET на http://localhost:8080/kie-server-services-6.2.0.Beta3/services/rest/server/containers. Вы должны увидеть, что ваш контейнер развернут:
<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>
- Теперь запустите все созданные вами правила и поместите их в jar вашего проекта: выполните запрос POST по адресу http://localhost:8080/kie-server-services-6.2.0.Beta3/services/rest/server/containers/ {your_container_id}
Используйте формат 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. Надеюсь это поможет.