使用 XPath 過濾器

此元件定義了一個基於 XPath 的訊息過濾器。在內部,這些元件使用一個 MessageFilter,它封裝了一個 AbstractXPathMessageSelector 例項。

有關更多詳細資訊,請參閱 過濾器

要使用 XPath 過濾器,您至少需要透過宣告 xpath-expression 元素或透過 xpath-expression-ref 屬性引用 XPath 表示式來提供 XPath 表示式。

如果提供的 XPath 表示式計算結果為 boolean 值,則無需其他配置引數。但是,如果 XPath 表示式計算結果為 String,則應設定 match-value 屬性,並將評估結果與之匹配。

match-type 有三個選項

  • exact:對應於 java.lang.String 上的 equals。底層實現使用 StringValueTestXPathMessageSelector

  • case-insensitive:對應於 java.lang.String 上的 equals-ignore-case。底層實現使用 StringValueTestXPathMessageSelector

  • regex:匹配 java.lang.String 上的操作。底層實現使用 RegexTestXPathMessageSelector

當提供 'regex' 的 'match-type' 值時,match-value 屬性提供的值必須是有效的正則表示式。

以下示例顯示了 xpath-filter 元素的所有可用屬性

<int-xml:xpath-filter discard-channel=""                      (1)
                      id=""                                   (2)
                      input-channel=""                        (3)
                      match-type="exact"                      (4)
                      match-value=""                          (5)
                      output-channel=""                       (6)
                      throw-exception-on-rejection="false"    (7)
                      xpath-expression-ref="">                (8)
    <int-xml:xpath-expression ... />                          (9)
    <int:poller ... />                                        (10)
</int-xml:xpath-filter>
1 您希望將拒絕的訊息傳送到的訊息通道。可選。
2 底層 bean 定義的 ID。可選。
3 此端點的接收訊息通道。可選。
4 XPath 評估結果與 match-value 之間應用的匹配型別。預設值為 exact。可選。
5 要與 XPath 評估結果匹配的字串值。如果您未設定此屬性,則 XPath 評估必須產生布爾結果。可選。
6 訊息分派到的通道,這些訊息與過濾器條件匹配。可選。
7 預設情況下,此屬性設定為 false,被拒絕的訊息(未匹配過濾器條件的訊息)將被靜默丟棄。但是,如果設定為 true,訊息拒絕將導致錯誤條件,並且異常將傳播到上游呼叫者。可選。
8 要評估的 XPath 表示式例項的引用。
9 此子元素設定要評估的 XPath 表示式。如果您不包含此元素,則必須設定 xpath-expression-ref 屬性。此外,您只能包含一個 xpath-expression 元素。
10 與 XPath 過濾器一起使用的輪詢器。可選。
© . This site is unofficial and not affiliated with VMware.