Spring XD - SpEL 表达式和过滤器中的逻辑运算符
Spring XD - Logical operators in SpEL expression and filters
我想创建一个这样的过滤器
file --outputType=text/plain --dir=someDir --mode=lines | filter --expression='payload.contains(\"request url\") AND payload.contains(\"request method\")' | log
所以,我想在控制台上可视化包含 request URL
和 request method
的行。
我根据
制作了这个流
不幸的是我遇到了这个错误:
.... Caused by: org.springframework.beans.PropertyBatchUpdateException;
nested PropertyAccessExceptions (1) are: PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'expressionString' threw exception; nested exception is
org.springframework.expression.spel.SpelParseException: EL1065E:(pos
17): unexpected escape character.
编辑: 我已经通过 Flo
部署了流
您使用的是什么版本?我刚刚在 1.3.1 上试过没有问题...
xd:>stream create foo --definition "tcp --outputType=text/plain | filter --expression='payload.contains(\"foo\") AND payload.contains(\"bar\")' | log" --deploy
$ telnet localhost 1234
Trying ::1...
Connected to localhost.
Escape character is '^]'.
abc
foobar
结果:
2017-03-25T08:59:57-0400 1.3.1.RELEASE INFO xdbus.foo.1-1 sink.foo - foobar
编辑
使用 flo (admin UI) 时,请使用 ''
而不是 \"
...
foo = tcp --outputType=text/plain | filter --expression='payload.contains(''foo'') AND payload.contains(''bar'')' | log
我想创建一个这样的过滤器
file --outputType=text/plain --dir=someDir --mode=lines | filter --expression='payload.contains(\"request url\") AND payload.contains(\"request method\")' | log
所以,我想在控制台上可视化包含 request URL
和 request method
的行。
我根据
不幸的是我遇到了这个错误:
.... Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'expressionString' threw exception; nested exception is org.springframework.expression.spel.SpelParseException: EL1065E:(pos 17): unexpected escape character.
编辑: 我已经通过 Flo
部署了流您使用的是什么版本?我刚刚在 1.3.1 上试过没有问题...
xd:>stream create foo --definition "tcp --outputType=text/plain | filter --expression='payload.contains(\"foo\") AND payload.contains(\"bar\")' | log" --deploy
$ telnet localhost 1234
Trying ::1...
Connected to localhost.
Escape character is '^]'.
abc
foobar
结果:
2017-03-25T08:59:57-0400 1.3.1.RELEASE INFO xdbus.foo.1-1 sink.foo - foobar
编辑
使用 flo (admin UI) 时,请使用 ''
而不是 \"
...
foo = tcp --outputType=text/plain | filter --expression='payload.contains(''foo'') AND payload.contains(''bar'')' | log