按属性占位符过滤

时间:2011-11-01 14:17:04

标签: esb mule

我试图让一个外部属性文件决定天气与否一定的流量(它的入站端点)应该是否有效。

目前,我正在尝试使用石英事件生成器来实现这一点 - 我想使用自定义表达式求值程序来停止流程,如果它应该是活动的(从属性文件中定义),但我得到执行此操作时出现xml错误: 服务器运行时发生致命错误:cvc-complex-type.3.2.2:不允许在元素'expression-filter'中出现属性'custom-evaluationator'。 (org.xml.sax.SAXParseException)。

这是相关代码:(我在Eclipse上用Mule IDE运行它) <expression-filter evaluator="custom" custom-evaluator="IsActiveEvaulator" expression="${chFlow.isActive}"/>

有关此问题的几个问题 1)为什么会发生这种错误?我直接从网站的教程中删除了这一行。 2)是否有一个默认表达式evaulator,可以根据属性占位符进行过滤? 3)如何使用没有石英事件发生器的流程来进行这种类型的过滤器。意思是,如何根据占位符属性停止某个流(及其端点)的工作。

提前致谢!

1 个答案:

答案 0 :(得分:1)

1)你被a bug咬伤了:(

2)我建议你创建一个控制bean(比如a.b.c.DynamicFlowController),用Spring配置它以在其中注入占位符值,将占位符值暴露为“isWhateverFlowActive”。然后创建一个自定义intercepting message processor并将其作为“自定义消息处理器”放在入站端点之后的流中。在此消息处理器中注入控制bean,并使用相关值来确定是否必须处理或放弃该事件。

3)拦截消息处理器将为您完成此操作。如果您还通过JMX公开控制bean,您将能够从属性文件控制其初始状态,然后在运行时更改其状态。

相关问题