在Mac中,使用Spring XD
1.3.2.RELEASE
以下工作正常:
stream create --name orderFilter --definition "http --port=9090 | filter --expression=#jsonPath(payload,'$.countryCode').equals('US') | file --name=manolito.txt --dir=/Users/manueljordan/Desktop --mode=APPEND" --deploy
通过自己的shell
以下作品:
http post --target http://localhost:9090 --data "{\"id\":\"2773\",\"countryCode\":\"US\",\"orderAmt\":\"100\"}"
http post --target http://localhost:9090 --data "{\"id\":\"2774\",\"countryCode\":\"CA\",\"orderAmt\":\"125\"}"
http post --target http://localhost:9090 --data "{\"id\":\"2775\",\"countryCode\":\"US\",\"orderAmt\":\"110\"}"
数据已过滤,输出位于/Users/manueljordan/Desktop
预期的位置。
直到这里一切都好。
现在迁移到使用
的Spring Cloud Data Flow
spring-cloud-dataflow-server-local-1.2.2.RELEASE.jar
spring-cloud-dataflow-shell-1.2.2.RELEASE.jar
通过GUI(http://localhost:9393/dashboard/index.html#/streams/definitions
),我可以创建相同的流。
再次通过shell(来自 spring-cloud-dataflow-shell ),以下工作:
http post --target http://localhost:9090 --data "{\"id\":\"2773\",\"countryCode\":\"US\",\"orderAmt\":\"100\"}"
http post --target http://localhost:9090 --data "{\"id\":\"2774\",\"countryCode\":\"CA\",\"orderAmt\":\"125\"}"
http post --target http://localhost:9090 --data "{\"id\":\"2775\",\"countryCode\":\"US\",\"orderAmt\":\"110\"}"
用于Spring XD
情境01 即使上面的三个http post
有关过滤器行为的影响,输出文件在/Users/manueljordan/Desktop
中创建的不,它是在/private/var/folders/nf/ql69b5zd7w54jw6nb5zmvck80000gn/T/dataflow/output
中创建的
观察dataflow
ql69b5zd7w54jw6nb5zmvck80000gn
目录
为什么会这样?如何解决这个问题?某些特殊配置缺失?
情境02 关于 cURL ,根据参考文档,在10.1. Endpoints部分,实际上低于Figure 3. The Spring Cloud Data Flow Server
显示{{ 1}}也可以使用。
如果我使用以下命令,则通过cURL
:(根据How to POST JSON data with Curl from Terminal/Commandline to Test Spring REST?)
iterm 2
没有任何反应(我按Enter键执行命令,只是传递给新的行提示符,就是全部)。为什么?缺少什么?
答案 0 :(得分:1)
请在此处查看答案:https://github.com/spring-cloud/spring-cloud-dataflow/issues/1587#issuecomment-313266803
我们监控SO和GitHub问题,因此无需交叉发布。
-Thomas