KIE服务器容器停留在“创建”状态

时间:2019-07-18 11:25:27

标签: drools kie kie-server

我正在运行kie-server-showcase泊坞窗映像,并尝试在其上运行一个非常简单的规则。

我这样启动容器:

docker run -i -p 8080:8080 --name kie-server --mount type=bind,source=$HOME/.m2,target=/opt/jboss/.m2 jboss/kie-server-showcase:latest

我需要使用绑定挂载,因为我只是在使用本地.m2 maven存储库(目前),这是我看到的获取容器以获取其副本的唯一方法。

我通过“ maven clean”和“ maven install”在Eclipse中构建了一个kjar。 在kjar(.jar)内部,我有:

  • META-INF,其中包含kmodule.xml和MANIFEST.MF,它也是一个maven子文件夹,该子文件夹的子文件夹中包含group-id,然后带有工件-id,即META-INF> maven> group>工件。工件文件夹包含pom和pom.properties(它们随后定义了GAV)。
  • 我的drl和bpmn

要在kie服务器上创建容器,请使用curl命令:

curl -u 'admin:admin' -H "accept: application/xml" -H "content-type: application/xml" -d @myContainer.xml -X PUT http://localhost:8080/kie-server/services/rest/server/containers/MyContainer

然后它开始运行该命令,但所花费的时间继续增加,直到我离开它30分钟后仍在继续。

我检查了kie-server容器,并添加了一个,但状态为CREATING:

<response type="SUCCESS" msg="List of created containers">
    <kie-containers>
        <kie-container container-id="MyContainer" status="CREATING">
            <release-id>
                <artifact-id>hummingbird.rules.syndicated-kjar</artifact-id>
                <group-id>uk.co.cdl.hummingbird</group-id>
                <version>0.0.1-SNAPSHOT</version>
            </release-id>
            <scanner status="DISPOSED"/>
        </kie-container>
    </kie-containers>
</response>

我对docker或使用kie-server的经验不是很丰富,并且过去没有使用过kjars,但是有一个自定义规则引擎,可以分别加载drl和bpmn。

我认为这可能归结于我的不正确之处。 docker容器似乎在本地Maven存储库挂载中看到了kjar(因为我以前遇到无法找到它的错误)。

kjar中的drl非常简单:

package somerules

import org.json.JSONObject
import java.util.Map

rule "somerules - do something" ruleflow-group "somerules"
dialect "java"
when
        $root : Map()
then
        insert(new JSONObject());
        delete($root);
end

并且bpmn不应成为问题(它与我们自定义规则引擎以前使用的相同):

<?xml version="1.0" encoding="UTF-8"?> 
<definitions id="Definition"
             targetNamespace="http://www.jboss.org/drools"
             typeLanguage="http://www.java.com/javaTypes"
             expressionLanguage="http://www.mvel.org/2.0"
             xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
             xmlns:g="http://www.jboss.org/drools/flow/gpd"
             xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
             xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
             xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
             xmlns:tns="http://www.jboss.org/drools">

  <process processType="Private" isExecutable="true" id="somerules" name="somerules" tns:packageName="somerules" >

    <!-- nodes -->
    <startEvent id="_1"  isInterrupting="true"/>
    <endEvent id="_jbpm-unique-0" name="End" >
        <terminateEventDefinition />
    </endEvent>
    <businessRuleTask id="_jbpm-unique-2" name="somerules" g:ruleFlowGroup="somerules" >
      <ioSpecification>
        <inputSet>
        </inputSet>
        <outputSet>
        </outputSet>
      </ioSpecification>
    </businessRuleTask>

    <!-- connections -->
    <sequenceFlow id="_jbpm-unique-2-_jbpm-unique-0" sourceRef="_jbpm-unique-2" targetRef="_jbpm-unique-0" />
    <sequenceFlow id="_1-_jbpm-unique-2" sourceRef="_1" targetRef="_jbpm-unique-2" />

  </process>

  <bpmndi:BPMNDiagram>
    ...
  </bpmndi:BPMNDiagram>

</definitions>

我正在用流口水7.23.0.Final构建kjar。我以前也尝试过7.22。

任何建议,谢谢。

1 个答案:

答案 0 :(得分:0)

我主要通过遵循给出的建议并尝试在没有Docker的情况下运行kie-server来找出问题所在。

我收到了很多关于依赖项和错误的错误消息(在Docker中我看不到),这些错误消息类似于“类X和类Y在Z属性上存在分歧”。

这是因为我的kjar pom具有在kie服务器中已经提供的依赖项,并且似乎存在冲突。都是流口水的依赖。通过在kjar pom中将这些依赖关系的作用域设置为“已提供”,问题得以解决,我可以创建容器(在Docker和非Docker kie-servers中)。