【发布时间】:2018-06-23 02:46:16
【问题描述】:
我一直在玩 Spring Cloud Stream App Starters 中的router sink,我有一个关于内容类型的问题。
我正在向路由器发送一个 JSON 字符串,并且我想编写一个 SpEL 表达式来确定路由。但是,即使我通过修改项目中的 JUnit 测试用例来运行它,“有效负载”也会显示为字符串,而不是解析的 JSON。在为过滤器处理器运行 JUnit 测试用例时,也在 Spring Cloud Stream App Starters 中,我需要做的就是在字符串中传递有效的 JSON,并且有效负载是 LinkedHashMap。 (一个普通的字符串,比如“Hello, world!” 使有效载荷显示为字符串类型。)
我真的希望我的路由器也有一个 HashMap 有效负载。否则,我无法弄清楚如何编写我的 SpEL 表达式。我之前学习了如何set a content type on Spring Cloud Stream,所以当我在Spring Cloud Dataflow中部署路由器时,我尝试通过以下方式设置它:
stream deploy --name router-flow --properties "app.router.spring.cloud.stream.bindings.input.content-type=application/json"
但是,有效负载仍然显示一个字符串。我哪里错了?
【问题讨论】:
-
您尝试过使用#jsonPath SpEL function 吗?它会自动在 Stream 应用中注册。
-
谢谢!那是为我做的!对此,我真的非常感激。如果您想将其放入答案中,我可以接受。
标签: spring spring-cloud-stream spring-cloud-dataflow