Запуск задания API Spring XD Rest с ответом jobParameters на «jobParameters» не распознается как внутренняя или внешняя команда

У меня уже развернуто задание Spring XD, которое ожидает 2 jobParameters (absoluteFilePath и fileName). На самом деле это задание запускается потоком JMS, вывод которого предоставляет эти 2 jobParameter в формате JSON, и это работает нормально. Я хочу запустить задание с REST API, например:

curl -X POST   http://localhost:9393/jobs/executions?jobname=loadData&jobParameters=%7B%22absoluteFilePath%22%3A%22C%3A%2FUB%2Fdev%2FBM.txt%22%2C%22fileName%22%3A%22BM.txt%22%7D

Я получаю сообщение об ошибке: «jobParameters» не распознается как внутренняя или внешняя команда, исполняемая программа или пакетный файл.

Хотите знать, что-то не так с командой CURL или jobParameters не поддерживается?

Я могу запустить задание без jobParameters с помощью следующей команды CURL, но, поскольку задание ожидает параметры, оно терпит неудачу.

curl -X POST   http://localhost:9393/jobs/executions?jobname=loadData

person user3727074    schedule 30.04.2015    source источник


Ответы (1)


Пробовали запускать через оболочку XD? Он отправляет jobName и jobParameters в теле запроса...

public void launchJob(String name, String jobParameters) {
    String uriTemplate = resources.get("jobs/executions").toString();
    MultiValueMap<String, Object> values = new LinkedMultiValueMap<String, Object>();
    values.add("jobParameters", jobParameters);
    values.add("jobname", name);
    restTemplate.postForObject(uriTemplate, values, Object.class);
}

Это похоже на сообщение оболочки ОС; попробуйте добавить '...' вокруг URL.

Google заставляет меня думать, что это в Windows (не уверен, откуда вы получаете завиток); для Windows вам, вероятно, понадобится "...".

(Проблема в &).

person Gary Russell    schedule 30.04.2015
comment
Отредактировано - похоже на проблему с оболочкой ОС/cmd. - person Gary Russell; 30.04.2015
comment
Да, ты прав. Спасибо за помощь. Он также работает из оболочки - person user3727074; 30.04.2015