首页 > 解决方案 > 更正 Spring Cloud Dataflow Filesplitter Processor 中 csv 下一行的分隔符表达式

问题描述

我正在使用 Spring Cloud Dataflow 服务器,并且正在使用时间源和 http 客户端处理器轮询 csv 文件。现在我想拆分轮询的 csv 文件和管道单行消息。由于 HttpClientProcessor 仅轮询整个文件,因此我使用 FileSplitter 处理器来归档它。但我坚持这一点。相关的 FileSplitter 选项是delimitersexpression

选项delimiters提示说

当表达式为空时,标记 {@link String} 有效负载时使用的分隔符。

选项expression提示说

用于拆分有效负载的 SpEL 表达式。

我已经尝试了很多可能性,而不仅仅是\n两个选项都没有成功。该expression选项字面上总是会触发以下错误:

Failed to bind properties under 'splitter.expression' to org.springframework.expression.Expression:

Property: splitter.expression
Value: \n
Origin: System Environment Property "SPRING_APPLICATION_JSON"
Reason: failed to convert java.lang.String to org.springframework.expression.Expression

delimiters选项的方法导致应用程序成功启动,但我的日志接收器没有得到任何输入。我的分隔符选项与csv 中被识别为真正的“换行符”字符不同。

有没有人知道我必须输入哪些选项delimitersexpression为了逐行拆分 csv 消息?实现我自己的 FileSplitter 处理器应用程序似乎有点矫枉过正,但如果需要,我会这样做......

标签: csvspring-cloud-streamspring-elspring-cloud-dataflowspring-properties

解决方案


这是一个使用提供 \\n的表达式参数的示例工作语法。

流创建 --name 名称 --definition "http --port=9090|splitter --expression=payload.split('\\n') |custom|log


推荐阅读