Spring XD Rest api 使用 jobParameters 响应 'jobParameters' 的作业启动未被识别为内部或外部命令
Spring XD Rest api job launch with jobParameters responding with 'jobParameters' is not recognized as an internal or external command
我已经部署了 Spring XD 作业,需要 2 jobParameter
秒(absoluteFilePath
和 fileName
)。实际上这个作业是由 JMS 流触发的,它的输出以 JSON 格式提供了那些 2 jobParameter
s 并且工作正常。我想用 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
?
我可以使用以下 CURL 命令在没有 jobParameter
s 的情况下启动作业,但是由于作业需要参数,所以它失败了。
curl -X POST http://localhost:9393/jobs/executions?jobname=loadData
您是否尝试过通过 XD shell 启动?它在请求正文中发送 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);
}
这看起来像 OS shell 消息;尝试在 URL.
周围添加“...”
Google 让我觉得这是在 Windows 上(不确定你从哪里得到卷曲);对于 Windows,您可能需要“...”。
(问题是&
)。
我已经部署了 Spring XD 作业,需要 2 jobParameter
秒(absoluteFilePath
和 fileName
)。实际上这个作业是由 JMS 流触发的,它的输出以 JSON 格式提供了那些 2 jobParameter
s 并且工作正常。我想用 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
?
我可以使用以下 CURL 命令在没有 jobParameter
s 的情况下启动作业,但是由于作业需要参数,所以它失败了。
curl -X POST http://localhost:9393/jobs/executions?jobname=loadData
您是否尝试过通过 XD shell 启动?它在请求正文中发送 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);
}
这看起来像 OS shell 消息;尝试在 URL.
周围添加“...”Google 让我觉得这是在 Windows 上(不确定你从哪里得到卷曲);对于 Windows,您可能需要“...”。
(问题是&
)。