HelloWorld с использованием Drools Workbench и KIE Server

Установите KIE Drools Workbench 6.2.0 Final внутри локального экземпляра сервера приложений JBoss 7 и Kie Server 6.2.0 Final внутри локального экземпляра Tomcat 7.

Использование веб-KIE Workbench строго для целей оценки (я использую его для кодирования проектов Maven на основе Java и не использую конкретную среду IDE, такую ​​как Eclipse или IntelliJ IDEA):

  1. Создан новый репозиторий под названием testRepo

  2. Создал новый проект HelloWorld

  3. Создан новый объект данных с именем HelloWorld со свойством String с именем message:

    package demo;
    
    /**
     * This class was automatically generated by the data modeler tool.
     */
    public class HelloWorld implements java.io.Serializable {
    
      static final long serialVersionUID = 1L;
    
      private java.lang.String message;
    
      public HelloWorld()
      {
      }
    
      public java.lang.String getMessage()
      {
         return this.message;
      }
    
      public void setMessage(java.lang.String message)
      {
         this.message = message;
      }
    
      public HelloWorld(java.lang.String message)
      {
         this.message = message;
      }
    
    } 
    
  4. Создан новый ДХО, содержащий следующее содержимое:

    package demo;
    
    import demo.HelloWorld;
    
    rule "hello"
    
    when 
        HelloWorld(message == "Joe");
    then
        System.out.println("Hello Joe!");
    end
    
  5. Когда я развертываю его на своем сервере Kie по этому URL-адресу:

http://localhost:8080/kie-server-6.2.0.Final-webc/services/rest/server/containers/helloworld.

Когда я копирую и вставляю указанный выше URL-адрес в Google Chrome, я получаю следующий ответ:

<response type="SUCCESS" msg="Info for container hello">
<kie-container container-id="hello" status="STARTED">
    <release-id>
        <artifact-id>Hello</artifact-id>
        <group-id>demo</group-id>
        <version>1.0</version>
    </release-id>
    <resolved-release-id>
        <artifact-id>Hello</artifact-id>
        <group-id>demo</group-id>
        <version>1.0</version>
    </resolved-release-id>
    <scanner status="DISPOSED"/>
</kie-container>
</response>
  1. Когда я пытаюсь выполнить POST, используя следующую полезную нагрузку (используя Postman или SoapUI):

    <batch-execution lookup="defaultKieSession">
    <insert out-identifier="message" return-object="true" entrypoint="DEFAULT">
        <demo.HelloWorld>
            <message>Joe</message>
        <demo.HelloWorld>
    </insert>
    

  2. Получено следующее:

    Состояние HTTP 415 - невозможно использовать тип контента. Сообщение отчета о состоянии. Невозможно использовать тип контента.

    description Сервер отклонил этот запрос, потому что объект запроса находится в формате, не поддерживаемом запрошенным ресурсом для запрошенного метода.

Что я делаю не так? Я пошел в Deploy -> Rule Deployments и зарегистрировал свой kie-сервер вместе с созданием контейнера под названием helloworld, и, как видно из шага 5, это сработало. Может я не правильно разворачиваю?

Кстати, я использовал следующее сообщение в качестве основы для переполнения стека (до запроса этот вопрос)...

Большинство результатов поиска Google просто объясняют, как программно создавать проекты Drools, настраивая проекты на основе Maven. Я оцениваю KIE Drools Workbench, чтобы увидеть, насколько легко нетехнический человек может использовать KIE Drools Workbench для создания правил на основе Drools и их выполнения.

Я пропустил шаг? В Tomcat 7 он содержит только следующие каталоги в apache-tomcat-7.0.64 / webapps / kie-server-6.2.0.Final-webc:

МЕТА-ИНФ

WEB-INF

Спасибо, что нашли время прочитать это ...


person PacificNW_Lover    schedule 06.10.2015    source источник
comment
Под версиями 6.5.3 и 6.5.2 вы имеете в виду 6.3.0 и 6.2.0, верно? Версии Drools 6.5.x пока нет.   -  person Esteban Aliverti    schedule 06.10.2015
comment
Эстебан, да ... Я использую 6.2.0 Final как для KIE Drools Workbench, так и для KIE Server. Внес правки в свой пост.   -  person PacificNW_Lover    schedule 06.10.2015


Ответы (3)


Какой тип контента вы используете в заголовке запроса POST? Насколько я помню, это сообщение об ошибке появилось, если вы не указали content-type: application/xml в заголовке запроса.

Надеюсь, это поможет,

person Esteban Aliverti    schedule 06.10.2015
comment
Да, я сделал ... В SoapUI я специально помещаю application / xml в заголовок своего запроса Post ... Это дает мне 401 - этот запрос требует HTTP-аутентификации. Я не понимаю почему? Я указал эту информацию при создании контейнера внутри KIE Drools Workbench ... Я также поместил информацию об имени пользователя и пароле в SoapUI в качестве параметров заголовка (пары ключ / значение). - person PacificNW_Lover; 06.10.2015
comment
Как упомянул Марко Блос в своем ответе, вам также необходимо предоставить параметры аутентификации. - person Esteban Aliverti; 07.10.2015

ты в порядке?

Ответ Эстебана правильный, но вы должны добавить еще один заголовок, заголовок, который вам нужно добавить, это «Авторизация», а значение авторизации - это пользователь, которого вы зарегистрировали в своей области приложения на своем kie-сервере, преобразованном в base64. например.:

kieserver: система * 01

преобразован в base64:

a2llc2VydmVyOnN5c3RlbSowMQ ==

Во всяком случае, полный заголовок моего запроса выглядит так:

Authorization : Basic a2llc2VydmVyOnN5c3RlbSowMQ==
Content-Type  : application/xml

Надеюсь, это было полезно.

Извините за мой английский! :)

person Marco Blos    schedule 06.10.2015

Я получил его, используя Postman (приложение / плагин Chrome), на вкладке авторизации выбрано значение No Auth. Действительно классный ответ!

<response type="SUCCESS" msg="Container helloworld successfully called.">
     <results>
         <![CDATA[<execution-results>
           <result identifier="message">
                <demo.HelloWorld>
                    <message>Joe</message>
                </demo.HelloWorld>
           </result>
           <fact-handle identifier="message" external-form="0:4:1864164041:1864164041:4:DEFAULT:NON_TRAIT"/>
</execution-results>]]>
           </results>
</response>
person PacificNW_Lover    schedule 06.10.2015