希望基于SpEL正则表达式组合路由到通道(以便来自不同主题/有效负载的多条消息可以路由到同一通道)。 尝试如上所述以及使用不同路由器类型的其他组合。不工作。
function make() {
return new Promise(function(resolve, reject) {
gulp.src(getPatterns('src-app'))
.pipe(gulp.dest('./build/app/'))
.on("end", resolve)
.on("error", reject);
});
}
return (args.noclean && !args.deploy)
? make()
: del(getPatterns('dest-app')).then(make);
低于错误:
引起:org.springframework.expression.spel.SpelParseException:EL1049E:(pos 37):'。':' star(*)'之后的意外数据
标题['主题'] = mesge.getPayload()。setHeaders("主题"," testTopic");
任何人都可以提供一些建议。谢谢。
答案 0 :(得分:0)
匹配参数必须是String
。这是正确的语法......
selector-expression="headers['topic'] matches '#{systemProperties[env]}${in.msge.topic}.*'"
请注意,它不适用于点缀systemProperties
。你需要为它添加引号......
selector-expression="headers['topic'] matches '#{systemProperties["env.foo"]}${in.msge.topic}.*'"/>
这与this answer略有不同的原因是,在这种情况下,SpEL表达式求值为在上下文初始化期间用作简单String
的值。
在这种情况下,我们需要评估在运行时使用的String
作为另一个SpEL表达式的一部分 - 因此整个事情需要被'...'
包围。