SCDF-具有多个标头的标头Enricher处理器

时间:2018-11-26 09:57:41

标签: spring-cloud-dataflow

我已经在Docker上部署了spring-cloud-dataflow。这些是使用过的容器:

  • springcloud / spring-cloud-dataflow-server-local:1.7.1.RELEASE
  • wurstmeister / zookeeper
  • wurstmeister / kafka:1.1.0

[此问题不涉及的其他容器...]

已查阅文档:

Spring Cloud Data Flow Reference Guide - 1.7.1.RELEASE

Header Enricher Processor

  

我正在尝试使用扩展头的处理器来添加多个头,但是我只能添加一个头。

     

使用以下示例:

time | header-enricher --headers="foo='bar' \n baz='qux'" --overwrite=true | log --expression=headers
  

还将此属性添加到部署中

app.*.spring.cloud.stream.kafka.binder.headers=foo,baz
  

页眉丰富的日志在启动时引发下一个错误。

     

嵌套异常是org.springframework.beans.BeanInstantiationException:无法实例化[org.springframework.integration.transformer.support.ExpressionEvaluatingHeaderValueMessageProcessor]:涉及包含bean'org.springframework.cloud.stream.app.header.enricher的循环引用.processor.HeaderEnricherProcessorConfiguration'-考虑将工厂方法声明为静态方法,以使其与其包含的实例保持独立。工厂方法“处理器”抛出异常;嵌套的异常是org.springframework.expression.spel.SpelParseException:EL1041E:解析有效的表达式后,表达式中还有更多数据:'baz'

编辑:我目前正在使用这两种方式来定义流。

  1. SCDF仪表板:引发下一个错误

SCDF Dashboard

  1. SCDF Shell spring-cloud-dataflow-shell-1.7.2.RELEASE 引发下一个错误 似乎他不接受字符\

Shell Quotes and Escaping

SCDF Shell

1 个答案:

答案 0 :(得分:0)

问题出在你的表情上。您需要删除双引号

 --headers=foo='bar' \n baz='qux'