1

JBoss 7 Application Server ローカルインスタンス内に KIE Drools Workbench 6.2.0 Final をインストールし、ローカル Tomcat 7 インスタンス内に Kie Server 6.2.0 Final をインストールします。

Web ベースの KIE Workbench を厳密に評価目的で使用する (Java ベースの Maven プロジェクトをコード生成するために使用し、Eclipse や IntelliJ IDEA などの特定の IDE を使用していない):

  1. testRepo という新しいリポジトリを作成しました

  2. HelloWorld という新しいプロジェクトを作成しました

  3. メッセージと呼ばれる文字列プロパティを持つ HelloWorld と呼ばれる新しいデータ オブジェクトを作成しました。

    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. 次の内容を含む新しい DRL を作成しました。

    package demo;
    
    import demo.HelloWorld;
    
    rule "hello"
    
    when 
        HelloWorld(message == "Joe");
    then
        System.out.println("Hello Joe!");
    end
    
  5. この URL で Kie サーバーにデプロイすると、次のようになります。

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 - コンテンツ タイプ タイプを消費できません ステータス レポート メッセージ コンテンツ タイプを消費できません

    説明 リクエスト エンティティが、リクエストされたメソッドのリクエストされたリソースでサポートされていない形式であるため、サーバーはこのリクエストを拒否しました。

私は間違っている可能性がありますか?Deploy -> Rule Deployments に移動し、kie-server を登録し、helloworld というコンテナーを作成しました。ステップ 5 からわかるように、うまくいきました。おそらく私はそれを正しく展開していませんか?

ところで、私は次のスタックオーバーフローの投稿を基礎として使用しました(この質問をする前に)...

Google からの検索結果のほとんどは、Maven ベースのプロジェクトをセットアップすることにより、プログラムで Drools プロジェクトを作成する方法を説明しているだけです。KIE Drools Workbench を評価して、非技術者が KIE Drools Workbench を使用して Drools ベースのルールを生成して実行する方法を簡単に確認しています。

手順がありませんか?Tomcat 7 では、apache-tomcat-7.0.64/webapps/kie-server-6.2.0.Final-webc の下に次のディレクトリのみが含まれます。

メタINF

WEB-INF

これを読んでくれてありがとう...

4

3 に答える 3

0

[認証] タブを [認証なし] に選択して、Postman (Chrome アプリ/プラグイン) を使用して動作させました。本当にクールな反応!

<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>
于 2015-10-06T20:36:12.710 に答える
0

大丈夫ですか?

Esteban の応答は正しいですが、別のヘッダーを追加する必要があります。追加する必要があるヘッダーは「Authorization」です。Authorization の値は、アプリケーションレルムに登録したユーザーを kie-server で変換したものです。 base64. 例えば:

キーサーバー:システム*01

base64 に変換:

a2llc2VydmVyOnN5c3RlbSowMQ==

とにかく、私のリクエストの完全なヘッダーは次のようになります。

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

お役に立てば幸いです。

私の英語でごめんなさい!:)

于 2015-10-06T20:28:05.020 に答える
0

POST リクエスト ヘッダーで使用しているコンテンツ タイプは何ですか? content-type: application/xml私が覚えている限りでは、リクエストのヘッダーにを指定しなかった場合に、そのエラー メッセージが表示されました。

それが役に立てば幸い、

于 2015-10-06T11:11:11.873 に答える