无法拆分由"分隔的弹簧XD流。

时间:2015-05-19 13:08:14

标签: spring-xd

我正在尝试分析日志流并希望拆分日志语句,当我在下面创建流时,我收到以下错误。

尝试1:

xd:>stream create words --definition "http --port=9000 | splitter --expression=payload.split('\"')  | log"
Command failed org.springframework.xd.rest.client.impl.SpringXDException: Could not find module with name 'splitter' and type 'sink'

尝试:2

xd:>stream create words --definition "http --port=9000 | splitter --expression=payload.split('"')  | log"
stream create words --definition "http --port=9000 | splitter --expression=payload.split('"') | log"
                                                                                                ^

不能有不平衡的引号

我是否可以通过创建客户处理器来实现这一目标?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

  

xd:> stream create words --definition“http --port = 9000 | splitter --expression = payload.split('\ u0022')| log”--deploy   创建并部署了新的流“单词”

请注意双引号的unicode用法。

  

xd:> http post --data“http \”log“

答案 1 :(得分:0)

这对我有用:

module compose my_splitter --definition 'splitter --expression=payload.split(\'"\')'
stream create words --definition "tcp --port=9000 --decoder=RAW --outputType=text/plain | my_splitter | log" --deploy

然后我正在使用

进行测试
echo 'foo"faa' | netcat 192.168.59.3 9000

我用tcp源代替了http源,这样我就可以用netcat进行测试了。但这也适用于http。

xd-singlenode日志的输出:

2015-05-21 22:27:22,463 1.1.0.RELEASE  INFO pool-11-thread-2 sink.words - foo
2015-05-21 22:27:22,464 1.1.0.RELEASE  INFO pool-11-thread-2 sink.words - faa

希望这有帮助