Optaplanner REST API解决问题

时间:2017-06-09 09:57:51

标签: rest optaplanner kie-server kie-wb

我们在Wildfly 10.0.0上使用Optaplanner 7.0.0 Final work bench和KIE Server以及optacloud示例。

到目前为止,我们已将容器部署到远程执行服务器,并使用RESTful API为该容器创建了解算器。

KIE Server提供的解算器详细信息为:

<org.kie.server.api.model.instance.SolverInstanceList>
    <solvers>
        <solver-instance>
            <container-id>test</container-id>
            <solver-id>testsolver</solver-id>
            <solver-config-file>optacloud/optacloud/cloudSolverConfig.solver.xml</solver-config-file>
            <status>NOT_SOLVING</status>
            <score />
         </solver-instance>
    </solvers>
</org.kie.server.api.model.instance.SolverInstanceList>

我们收到来自wildfly的405 Method Not Allowed响应,其中包含以下网址:

http://xxx.xxx.xxx.xxx:8080/kie-server-7.0.0.Final-ee7/services/rest/server/containers/test/solvers/testsolver/

此网址结构是否正确或我们是否遗漏了其他内容?

我们发布了以下数据:

<solver-instance>
  <status>SOLVING</status>
  <planning-problem class="optacloud.optacloud.CloudSolution">
    <computerList>
      <optacloud.optacloud.Computer>
        <cpuPower>10</cpuPower>
        <memory>4</memory>
        <networkBandwidth>100</networkBandwidth>
        <cost>1000</cost>
      </optacloud.optacloud.Computer>
      <optacloud.optacloud.Computer>
        <cpuPower>20</cpuPower>
        <memory>8</memory>
        <networkBandwidth>100</networkBandwidth>
        <cost>3000</cost>
      </optacloud.optacloud.Computer>
    </computerList>
    <processList>
      <optacloud.optacloud.Process>
        <requiredCpuPower>1</requiredCpuPower>
        <requiredMemory>7</requiredMemory>
        <requiredNetworkBandwidth>1</requiredNetworkBandwidth>
      </optacloud.optacloud.Process>
    </processList>
  </planning-problem>
</solver-instance>

带有以下标题:

Content-Type: application/xml
X-KIE-ContentType: xstream

1 个答案:

答案 0 :(得分:1)

KIE Server API已在7系列中更改,并且在提交解决方案有效负载中不再需要<solver-instance>包装。

您需要向http://${kie-server}/services/rest/server/containers/${container_id}/solvers/${solver_id}/state/solving发送一个POST,其中有效负载只是一个规划问题(解决方案)对象: <planning-problem class="optacloud.optacloud.CloudSolution">...</planning-problem>

请参阅快速入门https://github.com/kiegroup/kie-docs/blob/master/docs/optaplanner-wb-es-docs/src/main/asciidoc/Workbench/Quickstart/Quickstart-section.adoc#submit-solution,其中包含以新方式提交规划问题的示例。

新API概述:

注册求解器: PUT http:// $ {kie-server} / services / rest / server / containers / $ {container_id} / solvers / $ {solver_id}

提交解决方案: POST http:// $ {kie-server} / services / rest / server / containers / $ {container_id} / solvers / $ {solver_id} / state / solving

获得最佳解决方案: GET http:// $ {kie-server} / services / rest / server / containers / $ {container_id} / solvers / $ {solver_id} / bestsolution

终止求解器: POST http:// $ {kie-server} / services / rest / server / containers / $ {container_id} / solvers / $ {solver_id} / state / terminating-early

处理求解器: DELETE http:// $ {kie-server} / services / rest / server / containers / $ {container_id} / solvers / $ {solver_id}