2017-06-09 2 views
0

Nous utilisons le banc de travail final Optaplanner 7.0.0 et le serveur KIE avec l'exemple d'optacloud sur Wildfly 10.0.0. Jusqu'à présent, nous avons déployé un conteneur sur un serveur d'exécution distant et créé un solveur pour ce conteneur à l'aide de l'API RESTful.Optaplanner REST API résoudre le problème

détails Solver comme fournies par KIE serveur sont:

<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> 

Nous recevons une 405 Méthode réponse non autorisés de wildfly à l'adresse suivante:

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

est cette structure d'URL correcte ou est-ce que nous manquons autre chose?

nous affichons les données suivantes:

<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> 

avec les en-têtes suivants:

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

Répondre

1

L'API KIE Server a changé dans la série 7 et <solver-instance> wrapper n'est plus nécessaire dans la solution soumettre charge utile.

Vous devez envoyer un POST à ​​http://${kie-server}/services/rest/server/containers/${container_id}/solvers/${solver_id}/state/solving lorsque la charge utile est juste un objet de problème de planification (solution): <planning-problem class="optacloud.optacloud.CloudSolution">...</planning-problem>.

Veuillez consulter le quickstart https://github.com/kiegroup/kie-docs/blob/master/docs/optaplanner-wb-es-docs/src/main/asciidoc/Workbench/Quickstart/Quickstart-section.adoc#submit-solution contenant un exemple de soumission d'un problème de planification.

La nouvelle Présentation de l'API:

inscrire un solveur: PUT http: // $ {KIE-server}/services/repos/serveur/conteneurs/$ {container_id}/solveurs/$ {solver_id }

Soumettre une solution: POST http: // $ {KIE-server}/services/repos/serveur/conteneurs/$ {} container_id/solveurs/$ {} solver_id/État/résolution

Get la meilleure solution: GET http: // $ {kie-server}/services/rest/server/conteneurs/$ {container_i d}/solveurs/$ {solver_id}/bestsolution

Terminate solveur: POST http: // $ {KIE-server}/services/repos/serveur/conteneurs/$ {} container_id/solveurs/$ {solver_id }/État/terminaison précoce

Jetez un solveur: SUPPRIMER http: // $ {KIE-server}/services/repos/serveur/conteneurs/$ {} container_id/solveurs/$ {} solver_id