数据流启动器负载 Java

Dataflow launcher Payload Java

我构建了一个带有 http 源和接收器数据流启动器的流来执行名为 batchPY546Task 的 spring 批处理任务 要启动此任务,我设置了 localFilePath=path-of-the-file 参数。 因此在文档中,使用 http 源可以通过有效负载传递信息。

https://github.com/spring-cloud-stream-app-starters/tasklauncher-dataflow/blob/master/spring-cloud-starter-stream-sink-task-launcher-dataflow/README.adoc

{
  "name":"foo",
  "deploymentProps": {"key1":"val1","key2":"val2"},
  "args":["--debug", "--foo", "bar"]
}

我尝试了很多语法: curl http://localhost:57110 -H"Content-Type:application/json" -d '{"name":"batchPy546Task", "args":{"localFilePath=/tmp/remote-files1/BLM-54.00.01_Multicontrat_Creation_IDCRT011-b.xml"}}'

全错

原因:com.fasterxml.jackson.databind.exc.MismatchedInputException:无法从 START_OBJECT 令牌中反序列化 java.util.ArrayList<java.lang.Object> 的实例 在[来源:(字节[])“{"name":"batchPy546Task","args":{"localFilePath=/tmp/remote-files1/BLM-54.00.01_Multicontrat_Creation_IDCRT011-b.xml"}}”;行:1,列:34](通过引用链:org.springframework.cloud.stream.app.task.launcher.dataflow.sink.LaunchRequest["args"]) 在 com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59) ~[jackson-databind-2.10.2.jar!/:2.10.2]

如何将参数 lcalFilePath 传递给我的任务?

版本: 数据流服务器 14.2 船长服务器 2.3.2 datafmow auncher 是最新的并且与数据流服务器 2.4.2 兼容。

此致

args 必须是 json 列表 "args":["localFilePath=/tmp/..."]

使用此语法解决的问题: curl http://localhost:57110 -H"Content-Type:application/json" -d '{"name":"batchPy546Task", "args":["localFilePath=/tmp/remote-files1/BLM-54.00.01_Multicontrat_Creation_IDCRT011-b.xml"]}'