@Override public void solvePlanningProblem(String containerId, String solverId, Object planningProblem) { checkMandatoryParameter("ContainerID", containerId); checkMandatoryParameter("SolverId", solverId); checkMandatoryParameter("planningSolution", planningProblem); if (config.isRest()) { String uri = getURI(containerId, solverId) + "/" + RestURI.SOLVER_STATE_RUNNING; makeHttpPostRequestAndCreateCustomResponse(uri, planningProblem, ServiceResponse.class, getHeaders(planningProblem)); } else { CommandScript script = new CommandScript(Collections.singletonList(new SolvePlanningProblemCommand(containerId, solverId, serialize(planningProblem)))); ServiceResponse<Void> response = (ServiceResponse<Void>) executeJmsCommand(script, SolvePlanningProblemCommand.class.getName(), KieServerConstants.CAPABILITY_BRP, containerId).getResponses().get(0); throwExceptionOnFailure(response); } }