2011-11-01 88 views
1

我想讓外部屬性文件決定天氣或不是某個流(它的入站端點)應該是活動的或不活動的。我想使用石英事件生成器來實現這一點 - 我想使用自定義表達式求值器來停止流動,如果它應該是活動的(從屬性文件定義),但我在執行此操作時遇到xml錯誤: 服務器運行時發生致命錯誤:cvc-complex-type.3.2.2:屬性'custom-evaluator'不允許出現在元素'expression-filter'中。 (org.xml.sax.SAXParseException)。按屬性佔位符過濾

,這是相關代碼:(我與騾子IDE Eclipse的運行此) <expression-filter evaluator="custom" custom-evaluator="IsActiveEvaulator" expression="${chFlow.isActive}"/>

這個 1)爲什麼這個錯誤發生的幾個問題?我直接從網站的教程中複製了該行。 2)是否有一個默認的表達式evaulator可以根據屬性佔位符進行過濾? 3)我將如何去與這種類型的過濾器沒有啓動石英事件發生器的流量。意思是,我將如何根據佔位符屬性停止某個流(及其端點)的工作。

在此先感謝!

回答

1

1)你被a bug :(

2)咬我建議你創建一個防治菜豆(說abcDynamicFlowController),使用Spring配置它注入其中的佔位符值,暴露佔位符值作爲「isWhateverFlowActive」。然後創建一個自定義intercepting message processor,並將其作爲「自定義消息處理器」放入入站端點之後的流程中。在此消息處理器中注入控件bean,並使用相關值來決定事件是否必須處理或放棄。

3)攔截消息處理器會爲你做。如果您還將控制Bean暴露在JMX之上,您將能夠從屬性文件控制其初始狀態,然後在運行時更改其狀態。

+0

我將如何使用註冊表蒸發器? couldent在網上看到任何有關它的信息。我創建並注入了bean。 – Menyh

+0

此外,我沒有看到我可以如何使用這種方法來配置天氣某些流程的作品。這意味着我希望能夠使用提交的屬性來確定某個端點是否創建的天氣。 – Menyh

+0

我回顧了我的答案,提出了一個基於Mule攔截消息處理器支持的替代方案。另外,我沒有從你想創建端點的原始問題中得到答案。我以爲你想根據一些控制邏輯將消息放入流中。如果你想動態創建端點/流程,請看https://github.com/mulesoft/mule-dsl –